# SplayTreeSet<E> class

A Set of objects that can be ordered relative to each other.

The set is based on a self-balancing binary tree. It allows most operations in amortized logarithmic time.

Elements of the set are compared using the `compare` function passed in the constructor, both for ordering and for equality. If the set contains only an object `a`, then `set.contains(b)` will return `true` if and only if `compare(a, b) == 0`, and the value of `a == b` is not even checked. If the compare function is omitted, the objects are assumed to be Comparable, and are compared using their Comparable.compareTo method. Non-comparable objects (including `null`) will not work as an element in that case.

Mixes-in
  - IterableMixin<E>
  - SetMixin<E>

## Constructors

SplayTreeSet([int compare(E key1, E key2), bool isValidKey(dynamic potentialKey) ])
  Create a new SplayTreeSet with the given compare function. [...]
SplayTreeSet.from(Iterable elements, [ int compare(E key1, E key2), bool isValidKey(dynamic potentialKey) ])
  Creates a SplayTreeSet that contains all `elements`. [...]
  factory
SplayTreeSet.of(Iterable<E> elements, [ int compare(E key1, E key2), bool isValidKey(dynamic potentialKey) ])
  Creates a SplayTreeSet from `elements`. [...]
  factory

## Properties

first → E
  read-only
isEmpty → bool
  read-only
isNotEmpty → bool
  read-only
iterator → Iterator<E>
  read-only
last → E
  read-only
length → int
  read-only
single → E
  read-only
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited

## Methods

add(E element) → bool
addAll(Iterable<E> elements) → void
cast<R>() → Set<R>
clear() → void
contains(Object element) → bool
difference(Set<Object> other) → Set<E>
intersection(Set<Object> other) → Set<E>
lookup(Object object) → E
remove(Object object) → bool
removeAll(Iterable<Object> elements) → void
retainAll(Iterable<Object> elements) → void
toSet() → Set<E>
toString() → String
union(Set<E> other) → Set<E>
any(bool test(E element)) → bool
  Checks whether any element of this iterable satisfies `test`. [...]
  inherited
containsAll(Iterable<Object> other) → bool
  Returns whether this Set contains all the elements of `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
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
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
removeWhere(bool test(E element)) → void
  Removes all elements of this set that satisfy `test`.
  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
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