reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final <V> Flux<T> distinctUntilChanged(Function<? super T, ? extends V> keySelector,
			BiPredicate<? super V, ? super V> keyComparator) {
		return onAssembly(new FluxDistinctUntilChanged<>(this,
				keySelector,
				keyComparator));
	}
public final <V> Flux<T> distinctUntilChanged(Function<? super T, ? extends V> keySelector,
			BiPredicate<? super V, ? super V> keyComparator) {
		return onAssembly(new FluxDistinctUntilChanged<>(this,
				keySelector,
				keyComparator));
	}
public final < V > Flux < T > distinctUntilChanged ( Function < ? super T , ? extends V > keySelector , BiPredicate < ? super V , ? super V > keyComparator ) { return onAssembly ( new FluxDistinctUntilChanged <> ( this , keySelector , keyComparator ) ) ; }
Filter out subsequent repetitions of an element (that is, if they arrive right
after one another), as compared by a key extracted through the user provided {@link
Function} and then comparing keys with the supplied {@link BiPredicate}.
<p>
<img class="marble" src="doc-files/marbles/distinctUntilChangedWithKey.svg" alt="">

@reactor.discard This operator discards elements that are considered as "already seen"
(for which the {@code keyComparator} returns {@literal true}). The keys themselves
are not discarded.

@param keySelector function to compute comparison key for each element
@param keyComparator predicate used to compare keys.
@param <V> the type of the key extracted from each value in this sequence

@return a filtering {@link Flux} with only one occurrence in a row of each element
of the same key for which the predicate returns true (yet element keys can repeat
in the overall sequence)
Filter out subsequent repetitions of an element ( that is if they arrive right after one another ) as compared by a key extracted through the user provided { @link Function } and then comparing keys with the supplied { @link BiPredicate } . <p > <img class = marble src = doc - files / marbles / distinctUntilChangedWithKey . svg alt = >