groupOrdered()
Convert the input stream of
Comparable
objects into lists of ordered objects.Implementation Notes
This is suitable for streams whose elements implement Comparable
. For a version that takes a Comparator
, see groupOrderedBy()
.
The lists emitted from this Gatherer are unmodifiable.
Signature
groupOrdered(Order order)
order
- A non-null Order in which to group elements. Values areEqual
,Ascending
,Descending
,AscendingOrEqual
, andDescendingOrEqual
Examples
Group stream elements into strictly descending lists
Stream
.of(3, 2, 1, 2, 2, 1);
.gather(Gatherers4j.groupOrdered(Order.Descending))
.toList();
// [ [3, 2, 1], [2], [2, 1] ]
Group stream elements into strictly ascending lists
Stream
.of(1, 2, 3, 3, 1, 2);
.gather(Gatherers4j.groupOrdered(Order.Ascending))
.toList();
// [ [1, 2, 3], [3], [1, 2] ]
Group stream elements into descending or equal lists
Stream
.of(3, 2, 1, 2, 2, 1);
.gather(Gatherers4j.groupOrdered(Order.DescendingOrEqual))
.toList();
// [ [3, 2, 1], [2, 2, 1] ]
Group stream elements into ascending or equal lists
Stream
.of(1, 2, 3, 3, 1, 2);
.gather(Gatherers4j.groupOrdered(Order.AscendingOrEqual))
.toList();
// [ [1, 2, 3, 3], [1, 2] ]