Skip to content
FutureBlitz

    Install

    Import std.collections.interval_tree

    IntervalTree

    std.collections.interval_tree

    class

    @DebugElements Public Class IntervalTree<K: Comparable, V> Implements Iterable<(K, K, V)>, Cloneable, Defaultable

    Values over ranges of keys, found by the ranges that hold a key or overlap another range.

    Examples

    Local meetings = IntervalTree<Int, String>()
    meetings.Add(9, 11, "standup")
    meetings.Add(10, 12, "review")
    meetings.Add(14, 15, "lunch")
    Expect(meetings.Containing(10).Count == 2)
    Expect(meetings.Overlapping(12, 13) == [(10, 12, "review")])

    std/collections/interval_tree.fb, line 42

    • Public Property Count: Int property #

      How many values it has, over all its intervals.

    • @PanicsAtCaller Public Method Add(low: K, high: K, value: V) method #

      Adds a value over the interval from low to high, after any others over it. A high below low panics, and so does an end that isn't equal to itself, like NaN.

    • Public Method Remove(low: K, high: K, value: V): Bool method #

      Removes the first value over the interval from low to high that's equal to value, and tells whether there was one. An end that isn't equal to itself has none.

    • Public Method Contains(low: K, high: K, value: V): Bool method #

      Whether a value equal to value is over the interval from low to high, which an end that isn't equal to itself never has.

    • Public Method Clear() method #

      Takes every interval out.

    • Public Method Overlapping(low: K, high: K): (K, K, V)[] method #

      The intervals that overlap the one from low to high, with their values, by low and then by high, in a new array. A high below low overlaps nothing, and so does an end that isn't equal to itself.

    • Public Method Containing(key: K): (K, K, V)[] method #

      The intervals that hold key, with their values, by low and then by high, in a new array.

    • Public Method ToArray(): (K, K, V)[] method #

      Each interval's low and high with each of its values, by low and then by high, in a new array.

    • Public Static Method DefaultValue(): IntervalTree<K, V> static method #

      A new, empty IntervalTree.

    • Public Method Clone(): IntervalTree<K, V> method #

      A new IntervalTree with the same intervals and values.

    • Public Method Iterate(): IntervalTreeIterator<K, V> method #

      Each interval's low and high with each of its values, as a tuple, by low and then by high. Adding or removing a value while going over them panics.

    Report an issue with this page or with FutureBlitz on GitHub.