有没有办法重用流?
2022-08-31 12:05:14
我正在学习新的Java 8功能,在尝试流()和收集器时,我意识到流不能使用两次。java.util.stream.Stream
有没有办法重用它?
我正在学习新的Java 8功能,在尝试流()和收集器时,我意识到流不能使用两次。java.util.stream.Stream
有没有办法重用它?
如果您希望具有重用流的效果,则可以将流表达式包装在 Supplier 中,并在需要新表达式时进行调用。例如:myStreamSupplier.get()
Supplier<Stream<String>> sup = () -> someList.stream();
List<String> nonEmptyStrings = sup.get().filter(s -> !s.isEmpty()).collect(Collectors.toList());
Set<String> uniqueStrings = sup.get().collect(Collectors.toSet());