public class ImmutableRangeMap<K extends java.lang.Comparable<?>,V> extends java.lang.Object implements RangeMap<K,V>, java.io.Serializable
RangeMap whose contents will never change, with many other important properties
detailed at ImmutableCollection.| Modifier and Type | Class and Description |
|---|---|
static class |
ImmutableRangeMap.Builder<K extends java.lang.Comparable<?>,V>
A builder for immutable range maps.
|
private static class |
ImmutableRangeMap.SerializedForm<K extends java.lang.Comparable<?>,V>
This class is used to serialize ImmutableRangeMap instances.
|
| Modifier and Type | Field and Description |
|---|---|
private static ImmutableRangeMap<java.lang.Comparable<?>,java.lang.Object> |
EMPTY |
private ImmutableList<Range<K>> |
ranges |
private static long |
serialVersionUID |
private ImmutableList<V> |
values |
| Constructor and Description |
|---|
ImmutableRangeMap(ImmutableList<Range<K>> ranges,
ImmutableList<V> values) |
| Modifier and Type | Method and Description |
|---|---|
ImmutableMap<Range<K>,V> |
asDescendingMapOfRanges()
Returns a view of this range map as an unmodifiable
Map<Range<K>, V>. |
ImmutableMap<Range<K>,V> |
asMapOfRanges()
Returns a view of this range map as an unmodifiable
Map<Range<K>, V>. |
static <K extends java.lang.Comparable<?>,V> |
builder()
Returns a new builder for an immutable range map.
|
void |
clear()
Deprecated.
Unsupported operation.
|
static <K extends java.lang.Comparable<?>,V> |
copyOf(RangeMap<K,? extends V> rangeMap) |
boolean |
equals(java.lang.Object o)
|
V |
get(K key)
Returns the value associated with the specified key, or
null if there is no such value. |
java.util.Map.Entry<Range<K>,V> |
getEntry(K key)
Returns the range containing this key and its associated value, if such a range is present in
the range map, or
null otherwise. |
int |
hashCode()
Returns
asMapOfRanges().hashCode(). |
void |
merge(Range<K> range,
V value,
java.util.function.BiFunction<? super V,? super V,? extends V> remappingFunction)
Deprecated.
Unsupported operation.
|
static <K extends java.lang.Comparable<?>,V> |
of()
Returns an empty immutable range map.
|
static <K extends java.lang.Comparable<?>,V> |
of(Range<K> range,
V value)
Returns an immutable range map mapping a single range to a single value.
|
void |
put(Range<K> range,
V value)
Deprecated.
Unsupported operation.
|
void |
putAll(RangeMap<K,V> rangeMap)
Deprecated.
Unsupported operation.
|
void |
putCoalescing(Range<K> range,
V value)
Deprecated.
Unsupported operation.
|
void |
remove(Range<K> range)
Deprecated.
Unsupported operation.
|
Range<K> |
span()
Returns the minimal range enclosing the ranges in this
RangeMap. |
ImmutableRangeMap<K,V> |
subRangeMap(Range<K> range)
Returns a view of the part of this range map that intersects with
range. |
static <T,K extends java.lang.Comparable<? super K>,V> |
toImmutableRangeMap(java.util.function.Function<? super T,Range<K>> keyFunction,
java.util.function.Function<? super T,? extends V> valueFunction)
Returns a
Collector that accumulates the input elements into a new ImmutableRangeMap. |
java.lang.String |
toString()
Returns a readable string representation of this range map.
|
(package private) java.lang.Object |
writeReplace() |
private static final ImmutableRangeMap<java.lang.Comparable<?>,java.lang.Object> EMPTY
private final transient ImmutableList<Range<K extends java.lang.Comparable<?>>> ranges
private final transient ImmutableList<V> values
private static final long serialVersionUID
ImmutableRangeMap(ImmutableList<Range<K>> ranges, ImmutableList<V> values)
public static <T,K extends java.lang.Comparable<? super K>,V> java.util.stream.Collector<T,?,ImmutableRangeMap<K,V>> toImmutableRangeMap(java.util.function.Function<? super T,Range<K>> keyFunction, java.util.function.Function<? super T,? extends V> valueFunction)
Collector that accumulates the input elements into a new ImmutableRangeMap. As in ImmutableRangeMap.Builder, overlapping ranges are not permitted.public static <K extends java.lang.Comparable<?>,V> ImmutableRangeMap<K,V> of()
Performance note: the instance returned is a singleton.
public static <K extends java.lang.Comparable<?>,V> ImmutableRangeMap<K,V> of(Range<K> range, V value)
public static <K extends java.lang.Comparable<?>,V> ImmutableRangeMap<K,V> copyOf(RangeMap<K,? extends V> rangeMap)
public static <K extends java.lang.Comparable<?>,V> ImmutableRangeMap.Builder<K,V> builder()
@CheckForNull public V get(K key)
RangeMapnull 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.
@CheckForNull public java.util.Map.Entry<Range<K>,V> getEntry(K key)
RangeMapnull otherwise.public Range<K> span()
RangeMapRangeMap.@Deprecated public final void put(Range<K> range, V value)
RangeMap unmodified.@Deprecated public final void putCoalescing(Range<K> range, V value)
RangeMap unmodified.putCoalescing in interface RangeMap<K extends java.lang.Comparable<?>,V>java.lang.UnsupportedOperationException - always@Deprecated public final void putAll(RangeMap<K,V> rangeMap)
RangeMap unmodified.@Deprecated public final void clear()
RangeMap unmodified.@Deprecated public final void remove(Range<K> range)
RangeMap unmodified.@Deprecated public final void merge(Range<K> range, @CheckForNull V value, java.util.function.BiFunction<? super V,? super V,? extends V> remappingFunction)
RangeMap unmodified.public ImmutableMap<Range<K>,V> asMapOfRanges()
RangeMapMap<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.
asMapOfRanges in interface RangeMap<K extends java.lang.Comparable<?>,V>public ImmutableMap<Range<K>,V> asDescendingMapOfRanges()
RangeMapMap<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.
asDescendingMapOfRanges in interface RangeMap<K extends java.lang.Comparable<?>,V>public ImmutableRangeMap<K,V> subRangeMap(Range<K> range)
RangeMaprange.
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.
subRangeMap in interface RangeMap<K extends java.lang.Comparable<?>,V>public int hashCode()
RangeMapasMapOfRanges().hashCode().public boolean equals(@CheckForNull
java.lang.Object o)
RangeMappublic java.lang.String toString()
RangeMapjava.lang.Object writeReplace()