gpt4 book ai didi

Java Streams — 如何对提供的最后一个值执行中间函数

转载 作者:行者123 更新时间:2023-11-29 08:41:18 25 4
gpt4 key购买 nike

类似这个问题: Java Streams — How to perform an intermediate function every nth item

但是这一次,总是在检索到的最后一个终端值上做一些中间的事情。类似于此:

IntStream.rangeClosed(1, 26)
.filter(it -> isPrime(it))
.peek(every(5, System.out::println))
.onFinalValue( it -> System.out.println("Last value is: " + it))
.forEach( it -> {});

这样它应该每 5 个值打印一次,但也显示最后一个值。

您可能知道也可能不知道原始流的长度。因此它可能是热的(现场音频、电视视频源)或冷的(预录音频或其他向前/向后可搜索的源)。

最佳答案

因为 count() 是一个终止操作,你需要稍微改变一下你的逻辑:

    int res = IntStream.rangeClosed(1, 26)
.filter(it -> countIfPrime(it))
.peek(every(5, System.out::println))
.reduce(0, (left, right) -> right);

System.out.println("Final " + res);

在 countIfPrime() 中你也应该增加计数

关于Java Streams — 如何对提供的最后一个值执行中间函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40056984/

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