Sequential vs ParallelStreams - in java 8
Circuiting Operations in Streams in java 8
Create Stream of String in java 8
Reduce list to store it in Optional in java 8
1) Program/ Example - Streams Exception Example in java 8
package stream1;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
/**
* Write Program to - - in java 8
*/
public class StreamsExceptionExample {
public static void main(String[] args) {
//Stream<Integer> stream = Stream.of(1,2,3,4);
List<String> StringList = new ArrayList<>();
StringList.add("ank");
// Convert list (ArrayList) to stream
Stream<String> stream = StringList.stream();
// Now, use stream
stream.forEach(System.out::println); // Displays - ank, az, ad
/**
* UNCOMMENT this line to avoid - java.lang.IllegalStateException: stream has already been operated upon or closed
*/
//stream = StringList.stream(); // Convert list (ArrayList) to stream
//Below will throw - Exception in thread "main" java.lang.IllegalStateException: stream has already been operated upon or closed
//Exception could be avoided if above line is uncommented
stream.forEach(System.out::println);
/**
* Why it throws - Exception in thread "main" java.lang.IllegalStateException: stream has already been operated upon or closed?
* Because streams can't be used again
*
* Message itself is self-explanatory - stream has already been operated upon or closed -
* in our case - stream has already been operated upon
*
* Solution -
* Create new stream every time for some new operation.
*/
}
}
/*OUTPUT
ank
Exception in thread "main" java.lang.IllegalStateException: stream has already been operated upon or closed
at java.util.stream.AbstractPipeline.sourceStageSpliterator(Unknown Source)
at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)
at stream1.StreamsExceptionExample.main(StreamsExceptionExample.java:35)
*/
|
Having any doubt? or you you liked the tutorial! Please comment in below section.
Please express your love by liking JavaMadeSoEasy.com (JMSE) on facebook, following on google+ or Twitter.