@Beta @GwtIncompatible(value="NavigableMap") public class ImmutableRangeMap<K extends Comparable<?> extends Object,V> implements RangeMap <K ,V>
RangeMap, supporting all query operations efficiently.
Like all RangeMap implementations, this supports neither null keys nor null values.
| Modifier and Type | Class and Description |
|---|---|
static class |
ImmutableRangeMap
A builder for immutable range maps.
|
| Modifier and Type | Method and Description |
|---|---|
ImmutableMap |
asMapOfRanges()
Returns a view of this range map as an unmodifiable
Map<Range<K>, V>.
|
static <K extends Comparable |
builder()
Returns a new builder for an immutable range map.
|
void |
clear()
Removes all associations from this range map (optional operation).
|
static <K extends Comparable |
copyOf(RangeMap
|
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().
|
static <K extends Comparable |
of()
Returns an empty immutable range map.
|
static <K extends Comparable |
of(Range
Returns an immutable range map mapping a single range to a single value.
|
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.
|
ImmutableRangeMap |
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> ImmutableRangeMap <K ,V> of()
public static <K extends Comparable<?> ,V> ImmutableRangeMap <K ,V> of(Range <K> range, V value)
public static <K extends Comparable<?> ,V> ImmutableRangeMap <K ,V> copyOf(RangeMap <K ,? extends V> rangeMap)
public static <K extends Comparable<?> ,V> ImmutableRangeMap .Builder <K ,V> builder()
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 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.
It is guaranteed that no empty ranges will be in the returned Map.
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.
public int hashCode()
RangeMap
asMapOfRanges().hashCode().