Class ImmutableTreeMap<K,V>

java.lang.Object
org.djutils.immutablecollections.ImmutableAbstractMap<K,V>
org.djutils.immutablecollections.ImmutableTreeMap<K,V>
Type Parameters:
K - the key type of content of this Map
V - the value type of content of this Map
All Implemented Interfaces:
Serializable, ImmutableMap<K,V>, ImmutableNavigableMap<K,V>, ImmutableSortedMap<K,V>

public class ImmutableTreeMap<K,V> extends ImmutableAbstractMap<K,V> implements ImmutableNavigableMap<K,V>
An immutable wrapper for a TreeMap.

Copyright (c) 2016-2024 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://djutils.org. The DJUTILS project is distributed under a three-clause BSD-style license, which can be found at https://djutils.org/docs/license.html.

Author:
Alexander Verbraeck, Peter Knoppers
See Also:
  • Constructor Details

    • ImmutableTreeMap

      public ImmutableTreeMap(Map<K,V> sortedMap)
      Parameters:
      sortedMap - Map<K,V>; the map to use for the immutable map.
    • ImmutableTreeMap

      public ImmutableTreeMap(NavigableMap<K,V> map, Immutable copyOrWrap)
      Parameters:
      map - NavigableMap<K,V>; the map to use for the immutable map.
      copyOrWrap - COPY stores a safe, internal copy of the collection; WRAP stores a pointer to the original collection
    • ImmutableTreeMap

      public ImmutableTreeMap(ImmutableAbstractMap<K,V> immutableMap)
      Parameters:
      immutableMap - ImmutableAbstractMap<K,V>; the map to use for the immutable map.
    • ImmutableTreeMap

      public ImmutableTreeMap(ImmutableTreeMap<K,V> immutableTreeMap, Immutable copyOrWrap)
      Parameters:
      immutableTreeMap - ImmutableTreeMap<K,V>; the map to use for the immutable map.
      copyOrWrap - COPY stores a safe, internal copy of the collection; WRAP stores a pointer to the original collection
  • Method Details

    • getUnderlyingMap

      protected final NavigableMap<K,V> getUnderlyingMap()
      Description copied from class: ImmutableAbstractMap
      Return the raw underlying map.
      Overrides:
      getUnderlyingMap in class ImmutableAbstractMap<K,V>
      Returns:
      Map<K, V>; the raw underlying map
    • toMap

      public final NavigableMap<K,V> toMap()
      Description copied from interface: ImmutableNavigableMap
      Returns a modifiable copy of this immutable map.
      Specified by:
      toMap in interface ImmutableMap<K,V>
      Specified by:
      toMap in interface ImmutableNavigableMap<K,V>
      Specified by:
      toMap in interface ImmutableSortedMap<K,V>
      Returns:
      a modifiable copy of this immutable map.
    • keySet

      public final ImmutableSortedSet<K> keySet()
      Description copied from interface: ImmutableNavigableMap
      Returns a ImmutableSortedSet view of the keys contained in this map.
      Specified by:
      keySet in interface ImmutableMap<K,V>
      Specified by:
      keySet in interface ImmutableNavigableMap<K,V>
      Specified by:
      keySet in interface ImmutableSortedMap<K,V>
      Returns:
      an immutable sorted set of the keys contained in this map
    • entrySet

      Description copied from interface: ImmutableMap
      Returns a Set view of the entries contained in this map.
      Specified by:
      entrySet in interface ImmutableMap<K,V>
      Returns:
      an immutable set of the entries contained in this map
    • values

      public ImmutableSortedSet<V> values()
      Description copied from interface: ImmutableMap
      Returns a ImmutableCollection view of the values contained in this map.
      Specified by:
      values in interface ImmutableMap<K,V>
      Overrides:
      values in class ImmutableAbstractMap<K,V>
      Returns:
      an immutable collection view of the values contained in this map
    • comparator

      public final Comparator<? super K> comparator()
      Description copied from interface: ImmutableSortedMap
      Returns the comparator used to order the keys in this immutable map, or null if this immutable map uses the natural ordering of its keys.
      Specified by:
      comparator in interface ImmutableSortedMap<K,V>
      Returns:
      the comparator used to order the keys in this immutable map, or null if this immutable map uses the natural ordering of its keys
    • subMap

      public final ImmutableSortedMap<K,V> subMap(K fromKey, K toKey)
      Description copied from interface: ImmutableSortedMap
      Returns a view of the portion of this immutable map whose keys range from fromKey, inclusive, to toKey, exclusive. (If fromKey and toKey are equal, the returned immutable map is empty.)

      The result of this method is a new, immutable sorted map.

      Specified by:
      subMap in interface ImmutableSortedMap<K,V>
      Parameters:
      fromKey - K; low endpoint (inclusive) of the returned immutable map
      toKey - K; high endpoint (exclusive) of the returned immutable map
      Returns:
      a new, immutable sorted map of the portion of this immutable map whose keys range from fromKey, inclusive, to toKey, exclusive
    • headMap

      public final ImmutableSortedMap<K,V> headMap(K toKey)
      Description copied from interface: ImmutableSortedMap
      Returns a view of the portion of this immutable map whose keys are strictly less than toKey. The returned immutable map is backed by this immutable map, so changes in the returned immutable map are reflected in this immutable map, and vice-versa. The returned immutable map supports all optional immutable map operations that this immutable map supports.

      The result of this method is a new, immutable sorted map.

      Specified by:
      headMap in interface ImmutableSortedMap<K,V>
      Parameters:
      toKey - K; high endpoint (exclusive) of the returned immutable map
      Returns:
      a view of the portion of this immutable map whose keys are strictly less than toKey
    • tailMap

      public final ImmutableSortedMap<K,V> tailMap(K fromKey)
      Description copied from interface: ImmutableSortedMap
      Returns a view of the portion of this immutable map whose keys are greater than or equal to fromKey. The returned immutable map is backed by this immutable map, so changes in the returned immutable map are reflected in this immutable map, and vice-versa. The returned immutable map supports all optional immutable map operations that this immutable map supports.

      The result of this method is a new, immutable sorted map.

      Specified by:
      tailMap in interface ImmutableSortedMap<K,V>
      Parameters:
      fromKey - K; low endpoint (inclusive) of the returned immutable map
      Returns:
      a view of the portion of this immutable map whose keys are greater than or equal to fromKey
    • firstKey

      public final K firstKey()
      Description copied from interface: ImmutableSortedMap
      Returns the first (lowest) key currently in this immutable map.
      Specified by:
      firstKey in interface ImmutableSortedMap<K,V>
      Returns:
      the first (lowest) key currently in this immutable map
    • lastKey

      public final K lastKey()
      Description copied from interface: ImmutableSortedMap
      Returns the last (highest) key currently in this immutable map.
      Specified by:
      lastKey in interface ImmutableSortedMap<K,V>
      Returns:
      the last (highest) key currently in this immutable map
    • lowerKey

      public final K lowerKey(K key)
      Description copied from interface: ImmutableNavigableMap
      Returns the greatest key in this immutable map strictly less than the given key, or null if there is no such key.
      Specified by:
      lowerKey in interface ImmutableNavigableMap<K,V>
      Parameters:
      key - K; the value to match
      Returns:
      the greatest key less than e, or null if there is no such key
    • floorKey

      public final K floorKey(K key)
      Description copied from interface: ImmutableNavigableMap
      Returns the greatest key in this immutable map less than or equal to the given key, or null if there is no such key.
      Specified by:
      floorKey in interface ImmutableNavigableMap<K,V>
      Parameters:
      key - K; the value to match
      Returns:
      the greatest key less than or equal to e, or null if there is no such key
    • ceilingKey

      public final K ceilingKey(K key)
      Description copied from interface: ImmutableNavigableMap
      Returns the least key in this immutable map greater than or equal to the given key, or null if there is no such key.
      Specified by:
      ceilingKey in interface ImmutableNavigableMap<K,V>
      Parameters:
      key - K; the value to match
      Returns:
      the least key greater than or equal to e, or null if there is no such key
    • higherKey

      public final K higherKey(K key)
      Description copied from interface: ImmutableNavigableMap
      Returns the least key in this immutable map strictly greater than the given key, or null if there is no such key.
      Specified by:
      higherKey in interface ImmutableNavigableMap<K,V>
      Parameters:
      key - K; the value to match
      Returns:
      the least key greater than e, or null if there is no such key
    • descendingMap

      public final ImmutableNavigableMap<K,V> descendingMap()
      Description copied from interface: ImmutableNavigableMap
      Returns a reverse order view of the keys contained in this immutable map.

      The returned immutable map has an ordering equivalent to Collections.reverseOrder(comparator()). The expression s.descendingMap().descendingMap() returns a view of s essentially equivalent to s.

      Specified by:
      descendingMap in interface ImmutableNavigableMap<K,V>
      Returns:
      a reverse order view of this immutable map
    • subMap

      public final ImmutableNavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
      Description copied from interface: ImmutableNavigableMap
      Returns a view of the portion of this immutable map whose keys range from fromKey to toKey. If fromKey and toKey are equal, the returned immutable map is empty unless fromInclusive and toInclusive are both true.
      Specified by:
      subMap in interface ImmutableNavigableMap<K,V>
      Parameters:
      fromKey - K; low endpoint of the returned immutable map
      fromInclusive - boolean; true if the low endpoint is to be included in the returned view
      toKey - K; high endpoint of the returned immutable map
      toInclusive - boolean; true if the high endpoint is to be included in the returned view
      Returns:
      a view of the portion of this immutable map whose keys range from fromKey, inclusive, to toKey, exclusive
    • headMap

      public final ImmutableNavigableMap<K,V> headMap(K toKey, boolean inclusive)
      Description copied from interface: ImmutableNavigableMap
      Returns a view of the portion of this immutable map whose keys are less than (or equal to, if inclusive is true) toKey.
      Specified by:
      headMap in interface ImmutableNavigableMap<K,V>
      Parameters:
      toKey - K; high endpoint of the returned immutable map
      inclusive - boolean; true if the high endpoint is to be included in the returned view
      Returns:
      a view of the portion of this immutable map whose keys are less than (or equal to, if inclusive is true) toKey
    • tailMap

      public final ImmutableNavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
      Description copied from interface: ImmutableNavigableMap
      Returns a view of the portion of this immutable map whose keys are greater than (or equal to, if inclusive is true) fromKey.
      Specified by:
      tailMap in interface ImmutableNavigableMap<K,V>
      Parameters:
      fromKey - K; low endpoint of the returned immutable map
      inclusive - boolean; true if the low endpoint is to be included in the returned view
      Returns:
      a view of the portion of this immutable map whose keys are greater than or equal to fromKey
    • toString

      public final String toString()
      Description copied from interface: ImmutableMap
      Force to redefine toString.
      Specified by:
      toString in interface ImmutableMap<K,V>
      Overrides:
      toString in class Object
      Returns:
      String; a description of this immutable map