gpt4 book ai didi

java - 在 Java 8 中重用流

转载 作者:行者123 更新时间:2023-12-01 09:35:52 26 4
gpt4 key购买 nike

我需要计算大列表的两部分的比率,其中第一部分包含第二部分:

Stream<Element> part1 = list.stream().filter(x -> x.getN1() < x.getN2);
int result = part1.filter(y -> y.isRight()).count() / part1.count();

但是此代码抛出异常:java.lang.IllegalStateException:流已被操作或关闭

我可以编写代码而不在结果中创建相同的part1流吗?

最佳答案

您只能重用集合,因为它具有结果内存。

List<Element> part1 = list.stream().filter(x -> x.getN1() < x.getN2).collect(toList());
double result = (double) part1.stream().filter(y -> y.isRight()).count() / part1.size();

Stream 是一些在运行时优化的代码的构建器。它的执行并不像看起来那样动态。

关于java - 在 Java 8 中重用流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38938452/

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