java Stream-同一个Stream不能调用多次,否则报错 作者:马育民 • 2023-04-07 20:22 • 阅读:10107 # 介绍 同一个Stream不能调用多次,否则报错 ### 例子1 ``` List list = new ArrayList<>(); Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四"); Stream stream = list.stream(); stream.forEach(item -> System.out.println(item)); // 同一个stream,调用第二次,会报错 stream.forEach(item -> System.out.println(item)); ``` 报错如下: ``` Exception in thread "main" java.lang.IllegalStateException: stream has already been operated upon or closed at java.util.stream.AbstractPipeline.sourceStageSpliterator(AbstractPipeline.java:279) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) at std.S4只能调用一次.main(S4只能调用一次.java:16) ``` ### 例子2 ``` List list = new ArrayList<>(); Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四"); Stream stream = list.stream(); stream.filter(item -> item.startsWith("李")); // 同一个stream,调用第二次,会报错 stream.forEach(item -> System.out.println(item)); ``` 原文出处:http://malaoshi.top/show_1IX5HAM4YpTE.html