Class ImmutableRangeMap<K extends Comparable<?>,V>

java.lang.Object
com.google.common.collect.ImmutableRangeMap<K,V>
All Implemented Interfaces:
RangeMap<K,V>, Serializable

@GwtIncompatible public class ImmutableRangeMap<K extends Comparable<?>,V> extends Object implements RangeMap<K,V>, Serializable
A RangeMap whose contents will never change, with many other important properties detailed at ImmutableCollection.
Since:
14.0
Author:
Louis Wasserman
See Also:
  • Method Details

    • toImmutableRangeMap

      public static <T extends @Nullable Object, K extends Comparable<? super K>, V> Collector<T,?,ImmutableRangeMap<K,V>> toImmutableRangeMap(Function<? super T,Range<K>> keyFunction, Function<? super T,? extends V> valueFunction)
      Returns a Collector that accumulates the input elements into a new ImmutableRangeMap. As in ImmutableRangeMap.Builder, overlapping ranges are not permitted.
      Since:
      33.2.0 (available since 23.1 in guava-jre)
    • of

      public static <K extends Comparable<?>, V> ImmutableRangeMap<K,V> of()
      Returns an empty immutable range map.

      Performance note: the instance returned is a singleton.

    • of

      public static <K extends Comparable<?>, V> ImmutableRangeMap<K,V> of(Range<K> range, V value)
      Returns an immutable range map mapping a single range to a single value.
    • copyOf

      public static <K extends Comparable<?>, V> ImmutableRangeMap<K,V> copyOf(RangeMap<K,? extends V> rangeMap)
    • builder

      public static <K extends Comparable<?>, V> ImmutableRangeMap.Builder<K,V> builder()
      Returns a new builder for an immutable range map.
    • get

      public @Nullable V get(K key)
      Description copied from interface: RangeMap
      Returns the value associated with the specified key, or null if there is no such value.

      Specifically, if any range in this range map contains the specified key, the value associated with that range is returned.

      Specified by:
      get in interface RangeMap<K extends Comparable<?>,V>
    • getEntry

      public @Nullable Map.Entry<Range<K>,V> getEntry(K key)
      Description copied from interface: RangeMap
      Returns the range containing this key and its associated value, if such a range is present in the range map, or null otherwise.
      Specified by:
      getEntry in interface RangeMap<K extends Comparable<?>,V>
    • span

      public Range<K> span()
      Description copied from interface: RangeMap
      Returns the minimal range enclosing the ranges in this RangeMap.
      Specified by:
      span in interface RangeMap<K extends Comparable<?>,V>
    • put

      @Deprecated public final void put(Range<K> range, V value)
      Deprecated.
      Unsupported operation.
      Guaranteed to throw an exception and leave the RangeMap unmodified.
      Specified by:
      put in interface RangeMap<K extends Comparable<?>,V>
      Throws:
      UnsupportedOperationException - always
    • putCoalescing

      @Deprecated public final void putCoalescing(Range<K> range, V value)
      Deprecated.
      Unsupported operation.
      Guaranteed to throw an exception and leave the RangeMap unmodified.
      Specified by:
      putCoalescing in interface RangeMap<K extends Comparable<?>,V>
      Throws:
      UnsupportedOperationException - always
    • putAll

      @Deprecated public final void putAll(RangeMap<K,? extends V> rangeMap)
      Deprecated.
      Unsupported operation.
      Guaranteed to throw an exception and leave the RangeMap unmodified.
      Specified by:
      putAll in interface RangeMap<K extends Comparable<?>,V>
      Throws:
      UnsupportedOperationException - always
    • clear

      @Deprecated public final void clear()
      Deprecated.
      Unsupported operation.
      Guaranteed to throw an exception and leave the RangeMap unmodified.
      Specified by:
      clear in interface RangeMap<K extends Comparable<?>,V>
      Throws:
      UnsupportedOperationException - always
    • remove

      @Deprecated public final void remove(Range<K> range)
      Deprecated.
      Unsupported operation.
      Guaranteed to throw an exception and leave the RangeMap unmodified.
      Specified by:
      remove in interface RangeMap<K extends Comparable<?>,V>
      Throws:
      UnsupportedOperationException - always
    • asMapOfRanges

      public ImmutableMap<Range<K>,V> asMapOfRanges()
      Description copied from interface: RangeMap
      Returns a view of this range map as an unmodifiable Map<Range<K>, V>. Modifications to this range map are guaranteed to read through to the returned Map.

      The returned Map iterates over entries in ascending order of the bounds of the Range entries.

      It is guaranteed that no empty ranges will be in the returned Map.

      Specified by:
      asMapOfRanges in interface RangeMap<K extends Comparable<?>,V>
    • asDescendingMapOfRanges

      public ImmutableMap<Range<K>,V> asDescendingMapOfRanges()
      Description copied from interface: RangeMap
      Returns a view of this range map as an unmodifiable Map<Range<K>, V>. Modifications to this range map are guaranteed to read through to the returned Map.

      The returned Map iterates over entries in descending order of the bounds of the Range entries.

      It is guaranteed that no empty ranges will be in the returned Map.

      Specified by:
      asDescendingMapOfRanges in interface RangeMap<K extends Comparable<?>,V>
    • subRangeMap

      public ImmutableRangeMap<K,V> subRangeMap(Range<K> range)
      Description copied from interface: RangeMap
      Returns a view of the part of this range map that intersects with range.

      For example, if rangeMap had the entries [1, 5] => "foo", (6, 8) => "bar", (10, ∞) => "baz" then rangeMap.subRangeMap(Range.open(3, 12)) would return a range map with the entries (3, 5] => "foo", (6, 8) => "bar", (10, 12) => "baz".

      The returned range map supports all optional operations that this range map supports, except for asMapOfRanges().iterator().remove().

      The returned range map will throw an IllegalArgumentException on an attempt to insert a range not enclosed by range.

      Specified by:
      subRangeMap in interface RangeMap<K extends Comparable<?>,V>
    • hashCode

      public int hashCode()
      Description copied from interface: RangeMap
      Returns asMapOfRanges().hashCode().
      Specified by:
      hashCode in interface RangeMap<K extends Comparable<?>,V>
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(@Nullable Object o)
      Description copied from interface: RangeMap
      Returns true if obj is another RangeMap that has an equivalent RangeMap.asMapOfRanges().
      Specified by:
      equals in interface RangeMap<K extends Comparable<?>,V>
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Description copied from interface: RangeMap
      Returns a readable string representation of this range map.
      Specified by:
      toString in interface RangeMap<K extends Comparable<?>,V>
      Overrides:
      toString in class Object