我想要查找String
s以特定字符開頭,使用相同的Stream
兩次,但第二個Stream
操作拋出異常。我怎樣才能重新使用Stream
?如何在執行一個操作後重新使用流
public static void main(String[] args) {
Stream<String> stream = Stream.of("abc", "aef", "bcd", "bef", "crf");
stream.filter(s -> s.startsWith("a")).forEach(System.out::println);;
stream.filter(s -> s.startsWith("b")).forEach(System.out::println);;
}
異常
Exception in thread "main" java.lang.IllegalStateException: stream has already been operated upon or closed
at java.util.stream.AbstractPipeline.<init>(Unknown Source)
at java.util.stream.ReferencePipeline.<init>(Unknown Source)
at java.util.stream.ReferencePipeline$StatelessOp.<init>(Unknown Source)
at java.util.stream.ReferencePipeline$2.<init>(Unknown Source)
at java.util.stream.ReferencePipeline.filter(Unknown Source)
at StreamExp.main(StreamExp.java:13)