这对我来说似乎太棘手了,因为ImmutableSet实例只是用ImmutableSet.Builder实例构建的,没有实现,Collection所以你不能只使用Collectors.toCollection(ImmutableSet::new)或Collectors.toCollection(ImmutableSet.Builder::new).
我想用自然顺序将.csv保存到LinkedHashSet,因此.csv的第一行应该是LinkedHashSet的第一个元素.
该文件看起来像这样:
java
c
c++
assembly language
swift
Run Code Online (Sandbox Code Playgroud)
我的代码是这样的:
public class test {
public static void main(String[] args) throws IOException {
final Charset ENCODING = Charset.forName("Cp1250");
Path fileToLoad = Paths.get("src/main/resources/test.csv");
Set<String> x = Files.lines(fileToLoad, ENCODING)
.map(Function.identity())
.collect(Collectors.toSet());
Iterator<String> it = x.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它返回错误的顺序:
assembly language
c++
java
c
swift
Run Code Online (Sandbox Code Playgroud)
我认为该流只是将其保存为HashSet.
是否可以将其保存为带有流的LinkedHashSet?