Class TreeMap<K,V>

All Implemented Interfaces:
Iterable<Pair<K,V>>, Map<K,V>, SortedMap<K,V>, Traversable<Pair<K,V>>, Iterable<Pair<K,V>>

public class TreeMap<K,V> extends AbstractSortedMap<K,V>
TreeMap is an implementation of SortedMap based on a red-black tree.

TreeMaps can be constructed with a KeyFunction to provide modest memory saving per node. See DerivedKeyHashMap for an example of using a key function.

  • Field Details

  • Constructor Details

  • Method Details

    • factory

      @NotNull public static <K, V> @NotNull BuilderFactory<Pair<K,V>,TreeMap<K,V>> factory(Comparator<? super K> ordering, KeyFunction<K,V> keyFunction)
    • comparator

      public Comparator<? super K> comparator()
      Description copied from interface: SortedMap
      Returns the comparator associated with this map, or null if the default ordering is used.
    • containsKey

      public boolean containsKey(@NotNull K key)
      Description copied from interface: Map
      Returns true if this map contains the specified key.
    • put

      @NotNull public @NotNull TreeMap<K,V> put(@NotNull K key, V value)
      Description copied from interface: Map
      Returns a map with the value specified associated to the key specified.

      If value already exists for the key, it will be replaced.

    • get

      public V get(@NotNull K key)
      Description copied from interface: Map
      Returns the value associated with the key or null if the no value exists with the key specified.
    • size

      public int size()
      Description copied from interface: Traversable
      Returns the size of the collection.

      Warning: infinite collections are possible, as are collections that require traversal to calculate the size.

      Specified by:
      size in interface Traversable<K>
      Overrides:
      size in class AbstractTraversable<Pair<K,V>>
    • isEmpty

      public boolean isEmpty()
      Description copied from interface: Traversable
      Returns true if this collection is empty.
      Specified by:
      isEmpty in interface Traversable<K>
      Overrides:
      isEmpty in class AbstractTraversable<Pair<K,V>>
    • remove

      @NotNull public @NotNull TreeMap<K,V> remove(@NotNull K key)
      Description copied from interface: Map
      Returns a map with the value associated with the key removed if it exists.
    • iterator

      @NotNull public @NotNull Iterator<Pair<K,V>> iterator()
    • forEach

      public <U> void forEach(@NotNull @NotNull Function<Pair<K,V>,U> f)
      Description copied from interface: Traversable
      All collection methods can be built upon this forEach definition.
      Specified by:
      forEach in interface Traversable<K>
      Overrides:
      forEach in class AbstractIterable<Pair<K,V>>
    • first

      @Nullable public @Nullable Pair<K,V> first()
      Description copied from interface: SortedMap
      Returns the first entry in the map or null if the map is empty.
    • toPair

      private Pair<K,V> toPair(Tree<K,V> tree)
    • last

      @Nullable public @Nullable Pair<K,V> last()
      Description copied from interface: SortedMap
      Returns the last entry in the map or null if the map is empty.
    • drop

      @NotNull public @NotNull SortedMap<K,V> drop(int number)
      Description copied from interface: SortedMap
      Returns a map containing all elements in this map, excluding the first number of elements.
    • take

      @NotNull public @NotNull SortedMap<K,V> take(int number)
      Description copied from interface: SortedMap
      Returns a list containing the first number of elements from this list.
    • from

      @NotNull public @NotNull SortedMap<K,V> from(@NotNull K key, boolean inclusive)
      Description copied from interface: SortedMap
      Returns the bottom of the map starting from the key specified.
      Specified by:
      from in interface SortedMap<K,V>
      Overrides:
      from in class AbstractSortedMap<K,V>
      Parameters:
      inclusive - if true, the key will be included in the result, otherwise it will be excluded
    • to

      @NotNull public @NotNull SortedMap<K,V> to(@NotNull K key, boolean inclusive)
      Description copied from interface: SortedMap
      Returns the top of the map up until the key specified.
      Specified by:
      to in interface SortedMap<K,V>
      Overrides:
      to in class AbstractSortedMap<K,V>
      Parameters:
      inclusive - if true, the key will be included in the result, otherwise it will be excluded
    • range

      @NotNull public @NotNull SortedMap<K,V> range(@NotNull K from, boolean fromInclusive, @NotNull K to, boolean toInclusive)
      Description copied from interface: SortedMap
      Returns a subset of the map between the from and to keys specified.
      Parameters:
      fromInclusive - if true, the key will be included in the result, otherwise it will be excluded
      toInclusive - if true, the key will be included in the result, otherwise it will be excluded
    • keys

      @NotNull public @NotNull Iterable<K> keys()
      Description copied from interface: Map
      Returns the keys for this map.
      Specified by:
      keys in interface Map<K,V>
      Overrides:
      keys in class AbstractMap<K,V>
    • values

      @NotNull public @NotNull Iterable<V> values()
      Description copied from interface: Map
      Returns the values for this map.
      Specified by:
      values in interface Map<K,V>
      Overrides:
      values in class AbstractMap<K,V>
    • slice

      @NotNull protected @NotNull TreeMap<K,V> slice(int from, int until)