Java Stream | Collectors toCollection() in Java
Last Updated :
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.
- 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
// 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
// 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);
}
}
Explore
Java Basics
OOP & Interfaces
Collections
Exception Handling
Java Advanced
Practice Java