@Beta @GwtIncompatible(value="NavigableMap") public final class TreeRangeMap<K extends Comparableextends Object ,V> implements RangeMap <K ,V>
RangeMap
based on a
TreeMap
, supporting all optional operations.
Like all RangeMap
implementations, this supports neither null keys nor null values.
Modifier and Type | Method and Description |
---|---|
Map |
asDescendingMapOfRanges()
Returns a view of this range map as an unmodifiable
Map<Range<K>, V> .
|
Map |
asMapOfRanges()
Returns a view of this range map as an unmodifiable
Map<Range<K>, V> .
|
void |
clear()
Removes all associations from this range map (optional operation).
|
static <K extends Comparable |
create()
|
boolean |
equals(Object
|
V |
get(K key)
Returns the value associated with the specified key, or
null if there is no such value.
|
Map |
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 |
put(Range
Maps a range to a specified value (optional operation).
|
void |
putAll(RangeMap
Puts all the associations from
rangeMap into this range map (optional operation).
|
void |
remove(Range
Removes all associations from this range map in the specified range (optional operation).
|
Range |
span()
Returns the minimal range
enclosing the ranges in this
RangeMap .
|
RangeMap |
subRangeMap(Range
Returns a view of the part of this range map that intersects with
range .
|
String |
toString()
Returns a readable string representation of this range map.
|
public static <K extends Comparable,V> TreeRangeMap <K ,V> create()
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.
public Map.Entry <Range <K> ,V> getEntry(K key)
RangeMap
null
otherwise.
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 Range<K> span()
RangeMap
RangeMap
.
public void remove(Range<K> rangeToRemove)
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 Map<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
.
public Map<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
.
public RangeMap<K ,V> subRangeMap(Range <K> subRange)
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
.
public int hashCode()
RangeMap
asMapOfRanges().hashCode()
.