A collection operator accumulates all emissions into a collection such as a List or Map and then returns that entire collection as a single value. It is another form of a reducing operator since it aggregates emitted items into a single one. We will dedicate a section to each of the collection operators and several examples since their usage is slightly more complex than the previous examples.
Note that you should avoid reducing a stream of items into collections for the sake of it. It can undermine the benefits of reactive programming where items are processed in a beginning-to-end, one-at-a-time sequence. You only want to aggregate the emitted items into a collection when you need to group them logically in some way.