问题:
如何使用 Java 8 操作 Iterable Stream API 而不将其转换为 List?
解决方案:
tl;dr: 使用 StreamSupport.stream(iterable.spliterator(), false) 从 iterable 创建流。
详细说明:
Iterable 提供了 spliterator() 方法,该方法返回 Spliterator,可用于创建使用 StreamSupport.stream 进行流传输。下面是代码片段:
StreamSupport.stream(iterable.spliterator(), false) .filter(...) .moreStreamOps(...);
这种方法避免了不必要的列表转换,这可以提高性能和内存消耗。 StreamSupport.stream 有两个参数:
然后可以使用 Stream API 操作(如过滤器、映射等)来操作生成的流。
好处:
使用 StreamSupport.stream 提供有以下好处:
以上是如何在不使用列表的情况下将 Iterable 转换为 Java 8 流?的详细内容。更多信息请关注PHP中文网其他相关文章!