# SetBase<E> class

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.

Inheritance
  - Object
  - SetMixin<E>
  - SetBase

## Constructors

SetBase()

## Properties

first → E
  Returns the first element. [...]
  read-only, inherited
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
isEmpty → bool
  Returns `true` if there are no elements in this collection. [...]
  read-only, inherited
isNotEmpty → bool
  Returns true if there is at least one element in this collection. [...]
  read-only, inherited
iterator → Iterator<E>
  Provides an iterator that iterates over the elements of this set. [...]
  read-only, inherited
last → E
  Returns the last element. [...]
  read-only, inherited
length → int
  Returns the number of elements in the iterable. [...]
  read-only, inherited
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited
single → E
  Checks that this iterable has only one element, and returns that element. [...]
  read-only, inherited

## Methods

add(E value) → bool
  Adds `value` to the set. [...]
  inherited
addAll(Iterable<E> elements) → void
  Adds all `elements` to this Set. [...]
  inherited
any(bool test(E element)) → bool
  Checks whether any element of this iterable satisfies `test`. [...]
  inherited
cast<R>() → Set<R>
  Provides a view of this set as a set of `R` instances. [...]
  inherited
clear() → void
  Removes all elements in the set.
  inherited
contains(Object element) → bool
  Returns true if `value` is in the set.
  inherited
containsAll(Iterable<Object> other) → bool
  Returns whether this Set contains all the elements of `other`.
  inherited
difference(Set<Object> other) → Set<E>
  Returns a new set with the elements of this that are not in `other`. [...]
  inherited
elementAt(int index) → E
  Returns the `index`th element. [...]
  inherited
every(bool f(E element)) → bool
  Checks whether every element of this iterable satisfies `test`. [...]
  inherited
expand<T>(Iterable<T> f(E element)) → Iterable<T>
  Expands each element of this Iterable into zero or more elements. [...]
  inherited
firstWhere(bool test(E value), { E orElse() }) → E
  Returns the first element that satisfies the given predicate `test`. [...]
  inherited
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 [...]
  inherited
followedBy(Iterable<E> other) → Iterable<E>
  Returns the lazy concatentation of this iterable and `other`. [...]
  inherited
forEach(void f(E element)) → void
  Applies the function `f` to each element of this collection in iteration order.
  inherited
intersection(Set<Object> other) → Set<E>
  Returns a new set which is the intersection between this set and `other`. [...]
  inherited
join([String separator = "" ]) → String
  Converts each element to a String and concatenates the strings. [...]
  inherited
lastWhere(bool test(E value), { E orElse() }) → E
  Returns the last element that satisfies the given predicate `test`. [...]
  inherited
lookup(Object element) → E
  If an object equal to `object` is in the set, return it. [...]
  inherited
map<T>(T f(E element)) → Iterable<T>
  Returns a new lazy Iterable with elements that are created by calling `f` on each element of this `Iterable` in iteration order. [...]
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent 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. [...]
  inherited
remove(Object value) → bool
  Removes `value` from the set. Returns true if `value` was in the set. Returns false otherwise. The method has no effect if `value` value was not in the set.
  inherited
removeAll(Iterable<Object> elements) → void
  Removes each element of `elements` from this set.
  inherited
removeWhere(bool test(E element)) → void
  Removes all elements of this set that satisfy `test`.
  inherited
retainAll(Iterable<Object> elements) → void
  Removes all elements of this set that are not elements in `elements`. [...]
  inherited
retainWhere(bool test(E element)) → void
  Removes all elements of this set that fail to satisfy `test`.
  inherited
singleWhere(bool test(E value), { E orElse() }) → E
  Returns the single element that satisfies `test`. [...]
  inherited
skip(int n) → Iterable<E>
  Returns an Iterable that provides all but the first `count` elements. [...]
  inherited
skipWhile(bool test(E value)) → Iterable<E>
  Returns an `Iterable` that skips leading elements while `test` is satisfied. [...]
  inherited
take(int n) → Iterable<E>
  Returns a lazy iterable of the `count` first elements of this iterable. [...]
  inherited
takeWhile(bool test(E value)) → Iterable<E>
  Returns a lazy iterable of the leading elements satisfying `test`. [...]
  inherited
toList({bool growable: true }) → List<E>
  Creates a List containing the elements of this Iterable. [...]
  inherited
toSet() → Set<E>
  Creates a Set containing the same elements as this iterable. [...]
  inherited
toString() → String
  Returns a string representation of this object.
  inherited
union(Set<E> other) → Set<E>
  Returns a new set which contains all the elements of this set and `other`. [...]
  inherited
where(bool f(E element)) → Iterable<E>
  Returns a new lazy Iterable with all elements that satisfy the predicate `test`. [...]
  inherited
whereType<T>() → Iterable<T>
  Returns a new lazy Iterable with all elements that have type `T`. [...]
  inherited

## Operators

operator ==(dynamic other) → bool
  The equality operator. [...]
  inherited

## Static Methods

setToString(Set set) → String
  Convert a `Set` to a string as `{each, element, as, string}`. [...]