description

# SetBase<E> class abstract mixin

Base implementation of Set.

This class provides a base implementation of a `Set` that depends only on the abstract members: add, contains, lookup, remove, iterator, length and toSet.

Some of the methods assume that `toSet` creates a modifiable set. If using this base class for an unmodifiable set, where `toSet` should return an unmodifiable set, it's necessary to reimplement retainAll, union, intersection and difference.

Implementations of `Set` using this base should consider also implementing `clear` in constant time. The default implementation works by removing every element.

Implemented types
  - Set<E>
Implementers
  - AttributeClassSet
  - SplayTreeSet
  - UnmodifiableSetView
Available extensions
  - EnumByName
  - FutureIterable
  - IterableExtensions
  - IterableToJSIterable
  - NullableIterableExtensions

## Constructors

SetBase()
  const

## Properties

first → E
  The first element.
  no setter override
firstOrNull → T?

  Available on Iterable<T>, provided by the IterableExtensions extension

  The first element of this iterator, or `null` if the iterable is empty.
  no setter
hashCode → int
  The hash code for this object.
  no setter inherited
indexed → Iterable<(int, T)>

  Available on Iterable<T>, provided by the IterableExtensions extension

  Pairs of elements of the indices and elements of this iterable.
  no setter
isEmpty → bool
  Whether this collection has no elements.
  no setter override
isNotEmpty → bool
  Whether this collection has at least one element.
  no setter override
iterator → Iterator<E>
  An iterator that iterates over the elements of this set.
  no setter override
last → E
  The last element.
  no setter override
lastOrNull → T?

  Available on Iterable<T>, provided by the IterableExtensions extension

  The last element of this iterable, or `null` if the iterable is empty.
  no setter
length → int
  The number of elements in this Iterable.
  no setter override
nonNulls → Iterable<T>

  Available on Iterable<T?>, provided by the NullableIterableExtensions extension

  The non-`null` elements of this iterable.
  no setter
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited
single → E
  Checks that this iterable has only one element, and returns that element.
  no setter override
singleOrNull → T?

  Available on Iterable<T>, provided by the IterableExtensions extension

  The single element of this iterator, or `null`.
  no setter
toJSIterable → JSIterable<T>

  Available on Iterable<T>, provided by the IterableToJSIterable extension

  A JSIterable wrapper that proxies to the Dart iterable API.
  no setter
wait → Future<List<T>>

  Available on Iterable<Future<T>>, provided by the FutureIterable extension

  Waits for futures in parallel.
  no setter

## Methods

add(E value) → bool
  Adds `value` to the set.
  override
addAll(Iterable<E> elements) → void
  Adds all `elements` to this set.
  override
any(bool test(E value)) → bool
  Checks whether any element of this iterable satisfies `test`.
  override
asNameMap() → Map<String, T>

  Available on Iterable<T>, provided by the EnumByName extension

  Creates a map from the names of enum values to the values.
byName(String name) → T

  Available on Iterable<T>, provided by the EnumByName extension

  Finds the enum value in this list with name `name`.
cast<R>() → Set<R>
  Provides a view of this set as a set of `R` instances.
  override
clear() → void
  Removes all elements from the set.
  override
contains(Object? element) → bool
  Whether `value` is in the set.
  override
containsAll(Iterable<Object?> other) → bool
  Whether this set contains all the elements of `other`.
  override
difference(Set<Object?> other) → Set<E>
  Creates a new set with the elements of this that are not in `other`.
  override
elementAt(int index) → E
  Returns the `index`th element.
  override
elementAtOrNull(int index) → T?

  Available on Iterable<T>, provided by the IterableExtensions extension

  The element at position `index` of this iterable, or `null`.
every(bool f(E value)) → bool
  Checks whether every element of this iterable satisfies `test`.
  override
expand<T>(Iterable<T> f(E element)) → Iterable<T>
  Expands each element of this Iterable into zero or more elements.
  override
firstWhere(bool test(E value), {E orElse()?}) → E
  The first element that satisfies the given predicate `test`.
  override
fold<T>(T initialValue, T combine(T previousValue, E element)) → T
  Reduces a collection to a single value by iteratively combining each element of the collection with an existing value
  override
followedBy(Iterable<E> other) → Iterable<E>
  Creates the lazy concatenation of this iterable and `other`.
  override
forEach(void f(E element)) → void
  Invokes `action` on each element of this iterable in iteration order.
  override
intersection(Set<Object?> other) → Set<E>
  Creates a new set which is the intersection between this set and `other`.
  override
join([String separator = ""]) → String
  Converts each element to a String and concatenates the strings.
  override
lastWhere(bool test(E value), {E orElse()?}) → E
  The last element that satisfies the given predicate `test`.
  override
lookup(Object? element) → E?
  If an object equal to `object` is in the set, return it.
  override
map<T>(T f(E element)) → Iterable<T>
  The current elements of this iterable modified by `toElement`.
  override
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
reduce(E combine(E value, E element)) → E
  Reduces a collection to a single value by iteratively combining elements of the collection using the provided function.
  override
remove(Object? value) → bool
  Removes `value` from the set.
  override
removeAll(Iterable<Object?> elements) → void
  Removes each element of `elements` from this set.
  override
removeWhere(bool test(E value)) → void
  Removes all elements of this set that satisfy `test`.
  override
retainAll(Iterable<Object?> elements) → void
  Removes all elements of this set that are not elements in `elements`.
  override
retainWhere(bool test(E value)) → void
  Removes all elements of this set that fail to satisfy `test`.
  override
singleWhere(bool test(E value), {E orElse()?}) → E
  The single element that satisfies `test`.
  override
skip(int n) → Iterable<E>
  Creates an Iterable that provides all but the first `count` elements.
  override
skipWhile(bool test(E value)) → Iterable<E>
  Creates an `Iterable` that skips leading elements while `test` is satisfied.
  override
take(int n) → Iterable<E>
  Creates a lazy iterable of the `count` first elements of this iterable.
  override
takeWhile(bool test(E value)) → Iterable<E>
  Creates a lazy iterable of the leading elements satisfying `test`.
  override
toList({bool growable = true}) → List<E>
  Creates a List containing the elements of this Iterable.
  override
toSet() → Set<E>
  Creates a Set with the same elements and behavior as this `Set`.
  override
toString() → String
  A string representation of this object.
  override
union(Set<E> other) → Set<E>
  Creates a new set which contains all the elements of this set and `other`.
  override
where(bool f(E value)) → Iterable<E>
  Creates a new lazy Iterable with all elements that satisfy the predicate `test`.
  override
whereType<T>() → Iterable<T>
  Creates a new lazy Iterable with all elements that have type `T`.
  override

## Operators

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

## Static Methods

setToString(Set set) → String
  Converts a Set to a String.