gpt4 book ai didi

带有内存的 Java8 流

转载 作者:搜寻专家 更新时间:2023-11-01 03:18:26 24 4
gpt4 key购买 nike

如何在 java8(可能是内存过程)中重用已经通过流迭代计算的值?

如果流被复制或再次提供,它将被重新计算。在某些情况下,最好用内存换取该 cpu 时间。从头开始收集所有内容可能不是一个好主意,因为流用于查找满足谓词的第一个项目。

Stream<Integer> all = Stream.of(1,2,3,4,5, ...<many other values>... ).
map(x->veryLongTimeToComputeFunction(x));
System.out.println("fast find of 2"+all.filter(x->x>1).findFirst());

//both of these two lines generate a "java.lang.IllegalStateException: stream has already been operated upon or closed"
System.out.println("no find"+all.filter(x->x>10).findFirst());
System.out.println("find again"+all.filter(x->x>4).findFirst());

问题类似于Copy a stream to avoid "stream has already been operated upon or closed" (java 8)

最佳答案

为什么不在 veryLongTimeToComputeFunction 中使用内存?您可以将备忘录缓存作为函数的参数。

关于带有内存的 Java8 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39440672/

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