Sunday, October 5, 2025
HomeLanguagesJavaJava Stream | Collectors toCollection() in Java

Java Stream | Collectors toCollection() in Java

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.
  • 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);
    }
}


Output:

[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);
    }
}


Output:

[2.5, 4, 6]
RELATED ARTICLES

Most Popular

Dominic
32337 POSTS0 COMMENTS
Milvus
86 POSTS0 COMMENTS
Nango Kala
6706 POSTS0 COMMENTS
Nicole Veronica
11871 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11936 POSTS0 COMMENTS
Shaida Kate Naidoo
6823 POSTS0 COMMENTS
Ted Musemwa
7089 POSTS0 COMMENTS
Thapelo Manthata
6779 POSTS0 COMMENTS
Umr Jansen
6779 POSTS0 COMMENTS