Open In App

Convert an Iterable to Stream in Java

Last Updated : 11 Dec, 2018
Suggest changes
Share
Like Article
Like
Report
Given an Iterable, the task is to convert it into Stream in Java. Examples:
 Input: Iterable = [1, 2, 3, 4, 5] Output: {1, 2, 3, 4, 5} Input: Iterable = ['G', 'e', 'e', 'k', 's'] Output: {'G', 'e', 'e', 'k', 's'} 
Approach:
  1. Get the Iterable.
  2. Convert the Iterable to Spliterator using Iterable.spliterator() method.
  3. Convert the formed Spliterator into Sequential Stream using StreamSupport.stream() method.
  4. Return the stream.
Below is the implementation of the above approach: Java
// Java program to get a Stream // from a given Iterable import java.util.*; import java.util.stream.*; class GFG {  // Function to get the Stream  public static <T> Stream<T>  getStreamFromIterable(Iterable<T> iterable)  {  // Convert the Iterable to Spliterator  Spliterator<T>  spliterator = iterable.spliterator();  // Get a Sequential Stream from spliterator  return StreamSupport.stream(spliterator, false);  }  // Driver code  public static void main(String[] args)  {  // Get the Iterator  Iterable<Integer>  iterable = Arrays.asList(1, 2, 3, 4, 5);  // Get the Stream from the Iterable  Stream<Integer>  stream = getStreamFromIterable(iterable);  // Print the elements of stream  stream.forEach(s -> System.out.println(s));  } } 
Output:
 1 2 3 4 5 

Article Tags :

Explore