gpt4 book ai didi

java - 流式传输到 LinkedHashSet

转载 作者:行者123 更新时间:2023-12-01 22:37:29 31 4
gpt4 key购买 nike

我想以自然顺序将 .csv 保存到 LinkedHashSet,因此 .csv 的第一行应该是 LinkedHashSet 的第一个元素。

文件如下所示:

java  
c
c++
assembly language
swift

我的代码是这样的:

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());
}
}
}

但它返回错误的顺序:

assembly language
c++
java
c
swift

我认为该流只是将其保存为 HashSet。

是否可以将其保存为带流的LinkedHashSet?

最佳答案

您根本不知道该工厂方法创建的特定类型(它guarantees返回Set,没有其他)。

唯一可靠的方法是通过结束流操作来实际控制发生的情况

... collect( Collectors.toCollection( LinkedHashSet::new ) );

关于java - 流式传输到 LinkedHashSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51944956/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com