在Java 8中迭代流的最快方法是什么?

Pac*_*ace 4 java java-8 java-stream

如果我有一个集合,我想迭代一个过滤流,那么我可以做以下任何一个(以及更多的钝选项):

for(item in collection.stream().filter(...).collect(Collectors.toList()))
for(item in collection.stream().filter(...).collect(Collectors.toSet()))
Run Code Online (Sandbox Code Playgroud)

哪个更快?一个列表还是一组?有没有办法收集简单的Iterable或其他类型我可以迭代?

Era*_*ran 9

如果你只想迭代它的元素Stream,就不需要将它收集到a中Collection,只需使用forEach:

collection.stream()
          .filter(...)
          .forEach (item -> {
                            // do something with item
                            }
                   );
Run Code Online (Sandbox Code Playgroud)