@Beta @GwtIncompatible 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()
Deprecated.
Unsupported operation.
|
static <K extends java.lang.Comparable<?>,V> |
copyOf(RangeMap<K,? extends V> rangeMap) |
boolean |
equals(@Nullable java.lang.Object o)
|
V |
get(K key)
Returns the value associated with the specified key, or
null if there is no such value. |
@Nullable 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)
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.
|
@Beta 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()
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()
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 @Nullable java.util.Map.Entry<Range<K>,V> getEntry(K key)
RangeMap
null
otherwise.public Range<K> span()
RangeMap
RangeMap
.@Deprecated public void put(Range<K> range, V value)
RangeMap
unmodified.@Deprecated public 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 void putAll(RangeMap<K,V> rangeMap)
RangeMap
unmodified.@Deprecated public void clear()
RangeMap
unmodified.@Deprecated public void remove(Range<K> range)
RangeMap
unmodified.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
Copyright © 2010–2020 JBoss by Red Hat. All rights reserved.