gpt4 book ai didi

Java 流操作调用

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:51 25 4
gpt4 key购买 nike

任何人都可以指出官方 Java 文档,该文档描述了 Stream 将为每个元素调用每个“非干扰和无状态”中间操作的次数。

例如:

Arrays.asList("1", "2", "3", "4").stream()
.filter(s -> check(s))
.forEach(s -> System.out.println(s));

public boolean check(Object o) {
return true;
}

以上目前会调用check方法4次。

是否有可能在当前或 future 版本的 JDK 中,check 方法的执行次数多于或少于流中元素的数量 从 List 创建或任何其他标准 Java API?

最佳答案

这与流的来源无关,而是流实现本身所做的终端操作和优化。例如:

Stream.of(1,2,3,4)
.map(x -> x + 1)
.count();

从 java-9 开始,map 不会被执行一次。

或者:

 someTreeSet.stream()
.sorted()
.findFirst();

sorted 可能根本不会执行,因为源是一个 TreeSet 并且获取第一个元素是微不足道的,但是如果这是否在流 API 中实现,是一个不同的问题。

所以真正的答案在这里 - 这取决于,但我无法想象执行的操作会超过源中元素的数量。

关于Java 流操作调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53234586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com