stream has already been operated upon or closed

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 只可以使用一次


版权声明:本文为jcroad原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。