Convert an Iterable to Stream in Java
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:
- Get the Iterable.
- Convert the Iterable to Spliterator using Iterable.spliterator() method.
- Convert the formed Spliterator into Sequential Stream using StreamSupport.stream() method.
- Return the stream.
Below is the implementation of the above approach:
// 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
Please Login to comment...