description

# SplayTreeSet<E>.from constructor

SplayTreeSet<E>.from(

1. Iterable elements, [
2. int compare(
   1. E key1,
   2. E key2
   )?,
3. bool isValidKey(
   1. dynamic
   )?

])

Creates a SplayTreeSet that contains all `elements`.

The set works as if created by `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 =
        SplayTreeSet<SubType>.from(superSet.whereType<SubType>());

Example:

    final numbers = <num>[20, 30, 10];
    final setFrom = SplayTreeSet<int>.from(numbers);
    print(setFrom); // {10, 20, 30}

## Implementation

    factory SplayTreeSet.from(
      Iterable elements, [
      int Function(E key1, E key2)? compare,
      bool Function(dynamic potentialKey)? isValidKey,
    ]) {
      if (elements is Iterable<E>) {
        return SplayTreeSet<E>.of(elements, compare, isValidKey);
      }
      SplayTreeSet<E> result = SplayTreeSet<E>(compare, isValidKey);
      for (var element in elements) {
        result.add(element as dynamic);
      }
      return result;
    }