dedupeConsecutiveBy()
Remove consecutive duplicates, where equality is measured by a given function.
Implementation Notes
This function removes consecutive duplicate elements as measured by Object::equals(). For the purposes of this gatherer,
nulls are equal to each other but not equal to anything else.
For a version of dedupeConsecutiveBy() that measures equality via Object::equals(), see the dedupeConsecutive() Gatherer.
Signature
dedupeConsecutiveBy(Function<INPUT, Object> mappingFunction)
mappingFunction- A non-nullFunction<INPUT, Object>to compare elements of aStream<INPUT>
Diagram

Examples
Remove consecutive duplicates using a function reference
record Person(String firstName, String lastName) {}
Stream
.of(
new Person("Todd", "Ginsberg"),
new Person("Todd", "Smith"),
new Person("Emma", "Ginsberg")
)
.gather(Gatherers4j.dedupeConsecutiveBy(Person::firstName))
.toList();
// [Person("Todd", "Ginsberg"), Person("Emma", "Ginsberg")]