@Beta @GwtIncompatible(value="NavigableMap") 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.
|
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()
Removes all associations from this range map (optional 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() . |
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)
Maps a range to a specified value (optional operation).
|
void |
putAll(RangeMap<K,V> rangeMap)
Puts all the associations from
rangeMap into this range map (optional operation). |
void |
remove(Range<K> range)
Removes all associations from this range map in the specified range (optional 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 . |
java.lang.String |
toString()
Returns a readable string representation of this range map.
|
public static <K extends java.lang.Comparable<?>,V> ImmutableRangeMap<K,V> of()
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()
@Nullable public V get(K key)
RangeMap
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.
@Nullable public java.util.Map.Entry<Range<K>,V> getEntry(K key)
RangeMap
null
otherwise.public Range<K> span()
RangeMap
RangeMap
.public void put(Range<K> range, V value)
RangeMap
Specifically, after a call to put(range, value)
, if
range.contains(k)
, then get(k)
will return value
.
If range
is empty, then this is a no-op.
public void putAll(RangeMap<K,V> rangeMap)
RangeMap
rangeMap
into this range map (optional operation).public void clear()
RangeMap
public void remove(Range<K> range)
RangeMap
If !range.contains(k)
, get(k)
will return the same result
before and after a call to remove(range)
. If range.contains(k)
, then
after a call to remove(range)
, get(k)
will return null
.
public ImmutableMap<Range<K>,V> asMapOfRanges()
RangeMap
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
.
asMapOfRanges
in interface RangeMap<K extends java.lang.Comparable<?>,V>
public ImmutableMap<Range<K>,V> asDescendingMapOfRanges()
RangeMap
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
.
asDescendingMapOfRanges
in interface RangeMap<K extends java.lang.Comparable<?>,V>
public ImmutableRangeMap<K,V> subRangeMap(Range<K> range)
RangeMap
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
.
subRangeMap
in interface RangeMap<K extends java.lang.Comparable<?>,V>
public int hashCode()
RangeMap
asMapOfRanges().hashCode()
.public boolean equals(@Nullable java.lang.Object o)
RangeMap