# SplayTreeSet<E>.from constructor

SplayTreeSet<E>.from(Iterable elements, [ int compare(E key1, E key2), bool isValidKey(dynamic potentialKey) ])

Creates a SplayTreeSet that contains all `elements`.

The set works as if created by `new SplayTreeSet<E>(compare, isValidKey)`.

All the `elements` should be instances of `E` and valid arguments to `compare`. The `elements` iterable itself may have any element type, so this constructor can be used to down-cast a `Set`, for example as:

    Set<SuperType> superSet = ...;
    Set<SubType> subSet =
        new SplayTreeSet<SubType>.from(superSet.whereType<SubType>());

## Implementation

    factory SplayTreeSet.from(Iterable elements,
        [int compare(E key1, E key2), bool isValidKey(potentialKey)]) {
      SplayTreeSet<E> result = SplayTreeSet<E>(compare, isValidKey);
      for (final element in elements) {
        E e = element;
        result.add(e);
      }
      return result;
    }