Collector and Stream.collect – collecting Streams
We can perform numerous operations with Stream, but we may come into a situation where we need to repack the elements from the Stream into a data structure. The Stream.collect()
method helps us achieve the same. It's one of the terminal methods of the Streams API. It allows you to perform mutable fold
operations (repackaging elements to some data structures and applying some additional logic, concatenating them, and many more) on data elements held in a Stream instance.
The collect()
method takes a Collector
interface implementation as a parameter, for the strategy (whether to repackage them to a data structure, concatenate them, or anything else) of collecting.
So, do we need to write our own implementation of the Collector
interface for repackaging the Stream into a List
/Set
values? Of course not, the Streams API provides you with some of the predefined Collector
implementations for some of the most common use cases.
The Collectors
class holds...