相关疑难解决方法(0)

你如何创建一个收集到com.google.common.collect.ImmutableSet的java.util.stream.Collector?

这对我来说似乎太棘手了,因为ImmutableSet实例只是用ImmutableSet.Builder实例构建的,没有实现,Collection所以你不能只使用Collectors.toCollection(ImmutableSet::new)Collectors.toCollection(ImmutableSet.Builder::new).

java guava java-8 collectors

6
推荐指数
2
解决办法
1765
查看次数

流到LinkedHashSet

我想用自然顺序将.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?

java java-8 java-stream

4
推荐指数
1
解决办法
2466
查看次数

标签 统计

java ×2

java-8 ×2

collectors ×1

guava ×1

java-stream ×1