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")]