Class TreeSet<K, R>

An ordered Set backed by a red-black tree.

  • Iteration order is ascending by key.
  • No node exposure: all APIs use keys only.

Type Parameters

  • K = any
  • R = K

Implements

  • Iterable<K>

Constructors

  • Create a TreeSet from an iterable of keys or raw elements.

    Type Parameters

    • K = any
    • R = K

    Parameters

    • elements: Iterable<K, any, any> | Iterable<R, any, any> = []

      Iterable of keys, or raw elements if toElementFn is provided.

    • options: TreeSetOptions<K, R> = {}

      Configuration options including optional toElementFn to transform raw elements.

    Returns TreeSet<K, R>

    When using the default comparator and encountering unsupported key types, or invalid keys (e.g. NaN, invalid Date).

    // Standard usage with keys
    const set = new TreeSet([3, 1, 2]);

    // Using toElementFn to transform raw objects
    const users = [{ id: 3, name: 'Alice' }, { id: 1, name: 'Bob' }];
    const set = new TreeSet<number, User>(users, { toElementFn: u => u.id });

Accessors

Methods

  • Creates a shallow clone of this set.

    Returns TreeSet<K, K>

    Time O(n log n), Space O(n)

    const original = new TreeSet([1, 2, 3]);
    const copy = original.clone();
    copy.add(4);
    original.has(4); // false (original unchanged)
  • Iterate over [value, value] pairs (native Set convention).

    Note: TreeSet stores only keys internally; [k, k] is created on-the-fly during iteration.

    Returns IterableIterator<[K, K], any, any>

  • Test whether all values satisfy a predicate.

    Parameters

    • callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K, K>>
    • OptionalthisArg: unknown

    Returns boolean

    Time O(n), Space O(1)

  • Find the first value that satisfies a predicate.

    Parameters

    • callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K, K>>
    • OptionalthisArg: unknown

    Returns undefined | K

    Time O(n), Space O(1)

  • Visit each value in ascending order.

    Callback follows native Set convention: (value, value2, set).

    Parameters

    • cb: ((value: K, value2: K, set: TreeSet<K, K>) => void)
        • (value, value2, set): void
        • Parameters

          Returns void

    • OptionalthisArg: any

    Returns void

  • Create a new TreeSet by mapping each value to a new key.

    This mirrors RedBlackTree.map: mapping produces a new ordered container.

    Type Parameters

    • MK

    Parameters

    • callbackfn: TreeSetElementCallback<K, MK, TreeSet<K, K>>
    • options: Omit<TreeSetOptions<MK, MK>, "toElementFn"> & {
          comparator?: ((a: MK, b: MK) => number);
      } = {}
    • OptionalthisArg: unknown

    Returns TreeSet<MK, MK>

    Time O(n log n) expected, Space O(n)

  • Return all keys in a given range.

    Parameters

    • range: [K, K]

      [low, high]

    • options: TreeSetRangeOptions = {}

      Inclusive/exclusive bounds (defaults to inclusive).

    Returns K[]

  • Test whether any value satisfies a predicate.

    Parameters

    • callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K, K>>
    • OptionalthisArg: unknown

    Returns boolean

    Time O(n), Space O(1)

  • Iterate over values in ascending order.

    Note: for Set-like containers, values() is the same as keys().

    Returns IterableIterator<K, any, any>

  • Create the strict default comparator.

    Supports:

    • number (rejects NaN; treats -0 and 0 as equal)
    • string
    • Date (orders by getTime(), rejects invalid dates)

    For other key types, a custom comparator must be provided.

    Type Parameters

    • K

    Returns Comparator<K>