Streams Exception Example in java 8


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.







eEdit
Must read for you :