Now there is a frequent scenario to convert Iterable to Stream as we are dealing with JPA repositories. Most of the JPA findByXXX methods return Iterable type.

Convert Iterable to Stream Java 8:

Stream API provides a lot of flexibility to access the Java collections, for example, filter based on specific conditions, grouping of items, getting min or max items and what not?

So being a fan of the Stream API, I would like to convert an Iterable into a Stream to make use of the stream operations. Let’s see how it can be achieved.

Iterable to Stream:

StreamSupport class having low-level utility methods for creating and manipulating the streams.<T> spliterator,boolean parallel) method provides the stream object, the second parameter represents the type of a stream which we need to get. If we need a parallel stream we have to pass true as a parameter otherwise false.
import java.util.Arrays;

public class IterableToStream {
    public static void main(String[] args) {
        Iterable<String> iterable
                = Arrays.asList("Apple", "Grapes", "Banana", "Mango");
        Stream<String> stream =, false);
        // Applying stream operations (filtering). 




Happy Learning 🙂