我需要一个技巧来解决这个问题我正在使用 Java 1.8 我从一个返回 DoubleStream 对象的方法中检索了一个对象。所以,问题是我无法在使用流后重用它。
这是代码的第一个版本:
DoubleStream stream = object.getvalueStream(a,b);
if(condtion)
stream.map(v -> v * 2);
stream.forEach(value -> {
// do something
}
问题是一旦条件为真,流就被消耗掉了,我不能重用它。所以我尝试使用供应商从供应商返回一个 doubleStream 并公开迭代它。
但是,当我尝试从已使用的流对象中恢复流时,仍然存在同样的问题。
这是我更新的代码:
DoubleStream stream = object.getvalueStream(a,b);
if(condtion)
stream.map(v -> v * 2);
Supplier>DoubleStream> streamSupplier = () -> DoubleStream.of(stream.toArray());
streamSupplier.get().forEach(value -> {
//Do something
但是我仍然有同样的问题,因为如果条件为真,我会从我已经使用的流中创建我的供应商。
谢谢你的帮助。