Collectors is a utility class that provides various implementations of reduction operations such as grouping elements, collecting elements to different collections, summarizing elements according to various criteria, etc. The different functionalities in the Collectors class are usually used as final operations on streams.
toUnmodifiableList() is a static method of the Collectors used to collect/accumulate all the elements to a new unmodifiable list. The method returns a Collector that collects all the input elements into an unmodifiable list, and which disallows null values, raising a NullPointerException if it’s supplied with null values. This method was introduced in Java 10.
The toUnmodifiableList method is defined in the Collectors class. The Collectors class is defined in the java.util.stream package. To import the Collectors class, check the following import statement.
import java.util.stream.Collectors;
public static <T> Collector<T, ?, List<T>> toUnmodifiableList()
The method has no parameters.
This method returns a Collector that collects all the input elements into an unmodifiable list in the encounter order.
import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;import java.util.stream.Stream;public class main {public static void main(String[] args) {List<String> stringList = Arrays.asList("educative", "io", "edpresso");System.out.println("Stream before modification - " + stringList);Stream<String> stringStream = stringList.stream();List<String> uppercaseList = stringStream.map(String::toUpperCase).collect(Collectors.toUnmodifiableList());System.out.println("Resulting list after modification - " + uppercaseList);uppercaseList.add("test");}}
stringList.stringList.stringList.map method and collect the resulting elements to a new unmodifiable list using the toUnmodifiableList method.