Java Stream | Collectors toCollection() in Java

06 Dec, 2018
Collectors toCollection(Supplier<C> collectionFactory) method in Java is used to create a Collection using Collector. It returns a Collector that accumulates the input elements into a new Collection, in the order in which they are passed.
Syntax:
public static <T, C extends Collection<T>> Collector<T, ?, C>
      toCollection(Supplier<C> collectionFactory)

where:-
Collection : The root interface in the collection hierarchy. A collection represents a group of objects, known as its elements. Some collections allow duplicate elements and others do not. Some are ordered and others unordered.
Collector<T, A, R> : A mutable reduction operation that accumulates input elements into a mutable result container, optionally transforming the accumulated result into a final representation after all input elements have been processed. Reduction operations can be performed either sequentially or in parallel.T : The type of input elements to the reduction operation.A : The mutable accumulation type of the reduction operation.R : The result type of the reduction operation.
T : The type of input elements to the reduction operation.
A : The mutable accumulation type of the reduction operation.
R : The result type of the reduction operation.
Supplier : A functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
collectionFactory : A Supplier which returns a new, empty Collection of the appropriate type.
Parameters: This method takes a mandatory parameter collectionFactory of type Supplier which returns a new, empty Collection of the appropriate type.
Return Value: This method returns a collector which collects all the input elements into a Collection, in encounter order.
Below given are some examples to illustrate the implementation of toCollection() in a better way:
Example 1:
// Java code to demonstrate Collectors// toCollection(Supplier collectionFactory) method  import java.util.*;import java.util.stream.Collectors;import java.util.stream.Stream;  class GFG {      // Driver code    public static void main(String[] args)    {          // Creating a string stream        Stream<String> s = Stream.of("Geeks", "for", "GeeksClasses");          // Using toCollection() method        // to create a collection        Collection<String> names = s                                       .collect(Collectors                                                    .toCollection(TreeSet::new));          // Printing the elements        System.out.println(names);    }}
[Geeks, GeeksClasses, for]

Example 2:
// Java code to demonstrate Collectors// toCollection(Supplier collectionFactory) method  import java.util.Collection;import java.util.TreeSet;import java.util.stream.Collectors;import java.util.stream.Stream;  class GFG {      // Driver code    public static void main(String[] args)    {          // Creating a string stream        Stream<String> s = Stream.of("2.5", "6", "4");          // Using Collectors toCollection()        Collection<String> names = s                                       .collect(Collectors                                                    .toCollection(TreeSet::new));          // Printing the elements        System.out.println(names);    }}
[2.5, 4, 6]

Java - util package
Java-Collectors
Java-Functions
java-stream
Java-Stream-Collectors
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Stream In Java
Introduction to Java
Constructors in Java
Exceptions in Java
Generics in Java
Functional Interfaces in Java
Java Programming Examples
Strings in Java
Differences between JDK, JRE and JVM
Abstraction in Java