SplayTreeSet<E>.from constructor

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

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 =


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


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;