🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
The toCollection() method in Java, part of the java.util.stream.Collectors class, is used to collect the elements of a stream into a specified collection. This method is useful when you need to control the type of collection that the stream elements are collected into.
Table of Contents
- Introduction
toCollection()Method Syntax- Understanding
toCollection() - Examples
- Basic Usage
- Using
toCollection()with Custom Collections
- Real-World Use Case
- Conclusion
Introduction
The toCollection() method returns a Collector that accumulates the input elements into a new Collection, applying the provided collection supplier. This method is particularly useful when you need to collect the elements into a specific type of collection, such as a LinkedList, TreeSet, or any other custom collection.
toCollection() Method Syntax
The syntax for the toCollection() method is as follows:
public static <T, C extends Collection<T>> Collector<T, ?, C> toCollection(Supplier<C> collectionFactory)
Parameters:
collectionFactory: ASupplierthat provides a new, emptyCollectioninto which the results will be inserted.
Returns:
- A
Collectorthat collects the input elements into the specifiedCollection.
Throws:
- This method does not throw any exceptions.
Understanding toCollection()
The toCollection() method allows you to collect the elements of a stream into a specific type of collection provided by the supplier. This is useful in scenarios where you need the result to be a particular kind of collection rather than the default types such as List or Set.
Examples
Basic Usage
To demonstrate the basic usage of toCollection(), we will create a stream of integers and collect them into a LinkedList.
Example
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
public class ToCollectionExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// Collect the numbers into a LinkedList
LinkedList<Integer> linkedList = numbers.stream()
.collect(Collectors.toCollection(LinkedList::new));
System.out.println("LinkedList: " + linkedList);
}
}
Output:
LinkedList: [1, 2, 3, 4, 5]
Using toCollection() with Custom Collections
This example shows how to use toCollection() to collect elements into a TreeSet to ensure they are stored in a sorted order.
Example
import java.util.Arrays;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;
public class ToCollectionCustomExample {
public static void main(String[] args) {
List<String> words = Arrays.asList("banana", "apple", "cherry", "date");
// Collect the words into a TreeSet to store them in sorted order
TreeSet<String> sortedSet = words.stream()
.collect(Collectors.toCollection(TreeSet::new));
System.out.println("TreeSet: " + sortedSet);
}
}
Output:
TreeSet: [apple, banana, cherry, date]
Real-World Use Case
Collecting Unique Elements in a Custom Collection
In real-world applications, the toCollection() method can be used to collect unique elements into a custom collection, such as a PriorityQueue, to maintain a specific order.
Example
import java.util.Arrays;
import java.util.List;
import java.util.PriorityQueue;
import java.util.stream.Collectors;
public class CustomCollectionExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(5, 1, 3, 2, 4);
// Collect the numbers into a PriorityQueue to maintain natural ordering
PriorityQueue<Integer> priorityQueue = numbers.stream()
.collect(Collectors.toCollection(PriorityQueue::new));
System.out.println("PriorityQueue: " + priorityQueue);
}
}
Output:
PriorityQueue: [1, 2, 3, 5, 4]
Conclusion
The Collectors.toCollection() method is used to collect the elements of a stream into a specified collection. This method is particularly useful for collecting elements into specific types of collections, such as LinkedList, TreeSet, or any other custom collection. By understanding and using this method, you can efficiently manage collection operations in your Java applications.
Comments
Post a Comment
Leave Comment