In this tutorials, we are going to learn how to convert stream to list in Java 8

Java 8 convert Stream to List :

Java 8 provides a Collectors class to convert Stream to List. Collectors class is a final class, which is an implementation of Collector interface.

The Collector class provides various helpful reduction operations like accumulating the elements in the collection and summarizing the data based on criteria.

Convert Simple Stream of Strings to List :

Java8_StreamToList.java

public class Java8_StreamToList {
    public static void main(String args[]) {
        Stream<String> cities = Stream.of("Mumbai", "Banglore", "Delhi",
                "Vijayawada");
        List<String> cityList = cities.collect(Collectors.toList());
        cityList.forEach(System.out::println);
    }
}

Output :

Terminal
Mumbai
Banglore
Delhi
Vijayawada

Convert Simple Stream of Objects to List :

We can also convert the Stream of user-defined objects into List. Here I am going to create a stream of City class and convert the same into List.

City.java

City.java

class City {
    private int cityId;
    private String cityName;

    public City(int cityId, String cityName) {
        super();
        this.cityId = cityId;
        this.cityName = cityName;
    }

    public int getCityId() {
        return cityId;
    }

    public String getCityName() {
        return cityName;
    }

}

Converting Stream (contains City Objects) to List.

Java8_StreamToList.java

public class Java8_StreamToList {
    public static void main(String args[]) {
        convertObjets();
    }

    public static void convertObjets() {
        Stream<City> cities = Stream.of(new City(1, "Mumbai"), new City(1,
                "Banglore"), new City(1, "Delhi"),new City(1, "Vijayawada"));
        List<City> cityList = cities.collect(Collectors.toList());
        cityList.forEach(city->System.out.println(city.getCityName()));
    }

}

Output :

Terminal
Mumbai
Banglore
Delhi
Vijayawada

Happy Learning 🙂