有什么方法可以重用 Stream 吗?

新手上路,请多包涵

我正在学习 Java 8 的新功能,并且在尝试使用流 ( java.util.stream.Stream ) 和收集器时,我意识到一个流不能被使用两次。

有没有办法重用它?

原文由 Francisco 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 739
1 个回答

如果您想要重用流的效果,您可以将流表达式包装在 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());

原文由 Hank D 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题