DistinctUniqueStreamTransformer<S> class

Create a Stream which implements a HashSet under the hood, using the provided equals as equality.

The Stream will only emit an event, if that event is not yet found within the underlying HashSet.

Example

Stream.fromIterable([1, 2, 1, 2, 1, 2, 3, 2, 1])
    .listen((event) => print(event));

will emit: 1, 2, 3

The provided equals must define a stable equivalence relation, and hashCode must be consistent with equals.

If equals or hashCode are omitted, the set uses the elements' intrinsic Object.== and Object.hashCode. If you supply one of equals and hashCode, you should generally also to supply the other.

Inheritance

Constructors

DistinctUniqueStreamTransformer({bool equals(S e1, S e2)?, int hashCodeMethod(S e)?})
Constructs a StreamTransformer which emits events from the source Stream as if they were processed through a HashSet.

Properties

equals bool Function(S e1, S e2)?
Optional method which determines equality between two events
final
hashCode int
The hash code for this object.
no setterinherited
hashCodeMethod int Function(S e)?
Optional method which is used to create a hash from an event
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

bind(Stream<S> stream) Stream<S>
Transforms the provided stream.
override
cast<RS, RT>() StreamTransformer<RS, RT>
Provides a StreamTransformer<RS, RT> view of this stream transformer.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited