stream has already been operated upon or closed
Exception in thread "main" java.lang.IllegalStateException: stream has already been operated upon or closed
at java.util.stream.AbstractPipeline.<init>(AbstractPipeline.java:203)
at java.util.stream.IntPipeline.<init>(IntPipeline.java:91)
at java.util.stream.IntPipeline$StatefulOp.<init>(IntPipeline.java:619)
at java.util.stream.SliceOps$2.<init>(SliceOps.java:236)
at java.util.stream.SliceOps.makeInt(SliceOps.java:236)
at java.util.stream.IntPipeline.limit(IntPipeline.java:375)
at com.jcroad.j8.Streams.main(Streams.java:99)
代码:
/**
* .boxed() 的作用:
* DoubleStream 转成 Stream<Double>
* IntStream 转成 Stream<Integer>
* 。。。 等等相同功能
*/
//下面代码,功能是生成100个随机数。数字在0到100之间
Random random = new Random();
IntStream intStream = random.ints(0, 100);
IntStream limit = intStream.limit(100);
Stream<Integer> boxed = intStream.limit(100).boxed();
List<Integer> collect2 = boxed.collect(Collectors.toList());
Stream<Task> stream = tasks.stream();
这行代码报错:
Stream<Integer> boxed = intStream.limit(100).boxed();
原因:
一个 Stream 只可以使用一次