public final class ImmutableSortedMap<K,V> extends ImmutableSortedMapFauxverideShim<K,V> implements java.util.NavigableMap<K,V>
NavigableMap
whose contents will never change, with many other important properties
detailed at ImmutableCollection
.
Warning: as with any sorted collection, you are strongly advised not to use a Comparator
or Comparable
type whose comparison behavior is inconsistent with
equals. That is, a.compareTo(b)
or comparator.compare(a, b)
should equal zero
if and only if a.equals(b)
. If this advice is not followed, the resulting map will
not correctly obey its specification.
See the Guava User Guide article on immutable collections.
NavigableMap
since 12.0)Modifier and Type | Class and Description |
---|---|
static class |
ImmutableSortedMap.Builder<K,V>
A builder for creating immutable sorted map instances, especially
public static final
maps ("constant maps"). |
private static class |
ImmutableSortedMap.SerializedForm<K,V>
Serialized type for all ImmutableSortedMap instances.
|
ImmutableMap.IteratorBasedImmutableMap<K,V>
Modifier and Type | Field and Description |
---|---|
private ImmutableSortedMap<K,V> |
descendingMap |
private RegularImmutableSortedSet<K> |
keySet |
private static ImmutableSortedMap<java.lang.Comparable,java.lang.Object> |
NATURAL_EMPTY_MAP |
private static java.util.Comparator<java.lang.Comparable> |
NATURAL_ORDER |
private static long |
serialVersionUID |
private ImmutableList<V> |
valueList |
EMPTY_ENTRY_ARRAY
Constructor and Description |
---|
ImmutableSortedMap(RegularImmutableSortedSet<K> keySet,
ImmutableList<V> valueList) |
ImmutableSortedMap(RegularImmutableSortedSet<K> keySet,
ImmutableList<V> valueList,
ImmutableSortedMap<K,V> descendingMap) |
Modifier and Type | Method and Description |
---|---|
java.util.Map.Entry<K,V> |
ceilingEntry(K key) |
K |
ceilingKey(K key) |
java.util.Comparator<? super K> |
comparator()
Returns the comparator that orders the keys, which is
Ordering.natural() when the
natural ordering of the keys is used. |
static <K,V> ImmutableSortedMap<K,V> |
copyOf(java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries)
Returns an immutable map containing the given entries, with keys sorted by the provided
comparator.
|
static <K,V> ImmutableSortedMap<K,V> |
copyOf(java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries,
java.util.Comparator<? super K> comparator)
Returns an immutable map containing the given entries, with keys sorted by the provided
comparator.
|
static <K,V> ImmutableSortedMap<K,V> |
copyOf(java.util.Map<? extends K,? extends V> map)
Returns an immutable map containing the same entries as
map , sorted by the natural
ordering of the keys. |
static <K,V> ImmutableSortedMap<K,V> |
copyOf(java.util.Map<? extends K,? extends V> map,
java.util.Comparator<? super K> comparator)
Returns an immutable map containing the same entries as
map , with keys sorted by the
provided comparator. |
private static <K,V> ImmutableSortedMap<K,V> |
copyOfInternal(java.util.Map<? extends K,? extends V> map,
java.util.Comparator<? super K> comparator) |
static <K,V> ImmutableSortedMap<K,V> |
copyOfSorted(java.util.SortedMap<K,? extends V> map)
Returns an immutable map containing the same entries as the provided sorted map, with the same
ordering.
|
(package private) ImmutableSet<java.util.Map.Entry<K,V>> |
createEntrySet() |
(package private) ImmutableSet<K> |
createKeySet() |
(package private) ImmutableCollection<V> |
createValues() |
ImmutableSortedSet<K> |
descendingKeySet() |
ImmutableSortedMap<K,V> |
descendingMap() |
(package private) static <K,V> ImmutableSortedMap<K,V> |
emptyMap(java.util.Comparator<? super K> comparator) |
ImmutableSet<java.util.Map.Entry<K,V>> |
entrySet()
Returns an immutable set of the mappings in this map, sorted by the key ordering.
|
java.util.Map.Entry<K,V> |
firstEntry() |
K |
firstKey() |
java.util.Map.Entry<K,V> |
floorEntry(K key) |
K |
floorKey(K key) |
void |
forEach(java.util.function.BiConsumer<? super K,? super V> action) |
private static <K,V> ImmutableSortedMap<K,V> |
fromEntries(java.util.Comparator<? super K> comparator,
boolean sameComparator,
java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries)
Accepts a collection of possibly-null entries.
|
private static <K,V> ImmutableSortedMap<K,V> |
fromEntries(java.util.Comparator<? super K> comparator,
boolean sameComparator,
java.util.Map.Entry<K,V>[] entryArray,
int size) |
V |
get(java.lang.Object key) |
private ImmutableSortedMap<K,V> |
getSubMap(int fromIndex,
int toIndex) |
ImmutableSortedMap<K,V> |
headMap(K toKey)
This method returns a
ImmutableSortedMap , consisting of the entries whose keys are less
than toKey . |
ImmutableSortedMap<K,V> |
headMap(K toKey,
boolean inclusive)
This method returns a
ImmutableSortedMap , consisting of the entries whose keys are less
than (or equal to, if inclusive ) toKey . |
java.util.Map.Entry<K,V> |
higherEntry(K key) |
K |
higherKey(K key) |
(package private) boolean |
isPartialView() |
ImmutableSortedSet<K> |
keySet()
Returns an immutable sorted set of the keys in this map.
|
java.util.Map.Entry<K,V> |
lastEntry() |
K |
lastKey() |
java.util.Map.Entry<K,V> |
lowerEntry(K key) |
K |
lowerKey(K key) |
static <K extends java.lang.Comparable<?>,V> |
naturalOrder()
Returns a builder that creates immutable sorted maps whose keys are ordered by their natural
ordering.
|
ImmutableSortedSet<K> |
navigableKeySet() |
static <K,V> ImmutableSortedMap<K,V> |
of()
Returns the empty sorted map.
|
private static <K,V> ImmutableSortedMap<K,V> |
of(java.util.Comparator<? super K> comparator,
K k1,
V v1)
Returns an immutable map containing a single entry.
|
static <K extends java.lang.Comparable<? super K>,V> |
of(K k1,
V v1)
Returns an immutable map containing a single entry.
|
static <K extends java.lang.Comparable<? super K>,V> |
of(K k1,
V v1,
K k2,
V v2)
Returns an immutable sorted map containing the given entries, sorted by the natural ordering of
their keys.
|
static <K extends java.lang.Comparable<? super K>,V> |
of(K k1,
V v1,
K k2,
V v2,
K k3,
V v3)
Returns an immutable sorted map containing the given entries, sorted by the natural ordering of
their keys.
|
static <K extends java.lang.Comparable<? super K>,V> |
of(K k1,
V v1,
K k2,
V v2,
K k3,
V v3,
K k4,
V v4)
Returns an immutable sorted map containing the given entries, sorted by the natural ordering of
their keys.
|
static <K extends java.lang.Comparable<? super K>,V> |
of(K k1,
V v1,
K k2,
V v2,
K k3,
V v3,
K k4,
V v4,
K k5,
V v5)
Returns an immutable sorted map containing the given entries, sorted by the natural ordering of
their keys.
|
private static <K extends java.lang.Comparable<? super K>,V> |
ofEntries(java.util.Map.Entry<K,V>... entries) |
static <K,V> ImmutableSortedMap.Builder<K,V> |
orderedBy(java.util.Comparator<K> comparator)
Returns a builder that creates immutable sorted maps with an explicit comparator.
|
java.util.Map.Entry<K,V> |
pollFirstEntry()
Deprecated.
Unsupported operation.
|
java.util.Map.Entry<K,V> |
pollLastEntry()
Deprecated.
Unsupported operation.
|
static <K extends java.lang.Comparable<?>,V> |
reverseOrder()
Returns a builder that creates immutable sorted maps whose keys are ordered by the reverse of
their natural ordering.
|
int |
size() |
ImmutableSortedMap<K,V> |
subMap(K fromKey,
boolean fromInclusive,
K toKey,
boolean toInclusive)
This method returns a
ImmutableSortedMap , consisting of the entries whose keys ranges
from fromKey to toKey , inclusive or exclusive as indicated by the boolean
flags. |
ImmutableSortedMap<K,V> |
subMap(K fromKey,
K toKey)
This method returns a
ImmutableSortedMap , consisting of the entries whose keys ranges
from fromKey , inclusive, to toKey , exclusive. |
ImmutableSortedMap<K,V> |
tailMap(K fromKey)
This method returns a
ImmutableSortedMap , consisting of the entries whose keys are
greater than or equals to fromKey . |
ImmutableSortedMap<K,V> |
tailMap(K fromKey,
boolean inclusive)
This method returns a
ImmutableSortedMap , consisting of the entries whose keys are
greater than (or equal to, if inclusive ) fromKey . |
static <T,K,V> java.util.stream.Collector<T,?,ImmutableSortedMap<K,V>> |
toImmutableSortedMap(java.util.Comparator<? super K> comparator,
java.util.function.Function<? super T,? extends K> keyFunction,
java.util.function.Function<? super T,? extends V> valueFunction)
Returns a
Collector that accumulates elements into an ImmutableSortedMap whose
keys and values are the result of applying the provided mapping functions to the input
elements. |
static <T,K,V> java.util.stream.Collector<T,?,ImmutableSortedMap<K,V>> |
toImmutableSortedMap(java.util.Comparator<? super K> comparator,
java.util.function.Function<? super T,? extends K> keyFunction,
java.util.function.Function<? super T,? extends V> valueFunction,
java.util.function.BinaryOperator<V> mergeFunction)
Returns a
Collector that accumulates elements into an ImmutableSortedMap whose
keys and values are the result of applying the provided mapping functions to the input
elements. |
ImmutableCollection<V> |
values()
Returns an immutable collection of the values in this map, sorted by the ordering of the
corresponding keys.
|
(package private) java.lang.Object |
writeReplace()
Returns a serializable form of this object.
|
builder, builderWithExpectedSize, toImmutableMap, toImmutableMap
asMultimap, checkNoConflict, clear, compute, computeIfAbsent, computeIfPresent, conflictException, containsKey, containsValue, entryOf, equals, getOrDefault, hashCode, isEmpty, isHashCodeFast, keyIterator, keySpliterator, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, toString
private static final java.util.Comparator<java.lang.Comparable> NATURAL_ORDER
private static final ImmutableSortedMap<java.lang.Comparable,java.lang.Object> NATURAL_EMPTY_MAP
private final transient RegularImmutableSortedSet<K> keySet
private final transient ImmutableList<V> valueList
private transient ImmutableSortedMap<K,V> descendingMap
private static final long serialVersionUID
ImmutableSortedMap(RegularImmutableSortedSet<K> keySet, ImmutableList<V> valueList)
ImmutableSortedMap(RegularImmutableSortedSet<K> keySet, ImmutableList<V> valueList, ImmutableSortedMap<K,V> descendingMap)
public static <T,K,V> java.util.stream.Collector<T,?,ImmutableSortedMap<K,V>> toImmutableSortedMap(java.util.Comparator<? super K> comparator, java.util.function.Function<? super T,? extends K> keyFunction, java.util.function.Function<? super T,? extends V> valueFunction)
Collector
that accumulates elements into an ImmutableSortedMap
whose
keys and values are the result of applying the provided mapping functions to the input
elements. The generated map is sorted by the specified comparator.
If the mapped keys contain duplicates (according to the specified comparator), an IllegalArgumentException
is thrown when the collection operation is performed. (This differs
from the Collector
returned by Collectors.toMap(Function, Function)
, which
throws an IllegalStateException
.)
public static <T,K,V> java.util.stream.Collector<T,?,ImmutableSortedMap<K,V>> toImmutableSortedMap(java.util.Comparator<? super K> comparator, java.util.function.Function<? super T,? extends K> keyFunction, java.util.function.Function<? super T,? extends V> valueFunction, java.util.function.BinaryOperator<V> mergeFunction)
Collector
that accumulates elements into an ImmutableSortedMap
whose
keys and values are the result of applying the provided mapping functions to the input
elements.
If the mapped keys contain duplicates (according to the comparator), the the values are merged using the specified merging function. Entries will appear in the encounter order of the first occurrence of the key.
static <K,V> ImmutableSortedMap<K,V> emptyMap(java.util.Comparator<? super K> comparator)
public static <K,V> ImmutableSortedMap<K,V> of()
public static <K extends java.lang.Comparable<? super K>,V> ImmutableSortedMap<K,V> of(K k1, V v1)
private static <K,V> ImmutableSortedMap<K,V> of(java.util.Comparator<? super K> comparator, K k1, V v1)
public static <K extends java.lang.Comparable<? super K>,V> ImmutableSortedMap<K,V> of(K k1, V v1, K k2, V v2)
java.lang.IllegalArgumentException
- if the two keys are equal according to their natural orderingpublic static <K extends java.lang.Comparable<? super K>,V> ImmutableSortedMap<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3)
java.lang.IllegalArgumentException
- if any two keys are equal according to their natural orderingpublic static <K extends java.lang.Comparable<? super K>,V> ImmutableSortedMap<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)
java.lang.IllegalArgumentException
- if any two keys are equal according to their natural orderingpublic static <K extends java.lang.Comparable<? super K>,V> ImmutableSortedMap<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)
java.lang.IllegalArgumentException
- if any two keys are equal according to their natural orderingprivate static <K extends java.lang.Comparable<? super K>,V> ImmutableSortedMap<K,V> ofEntries(java.util.Map.Entry<K,V>... entries)
public static <K,V> ImmutableSortedMap<K,V> copyOf(java.util.Map<? extends K,? extends V> map)
map
, sorted by the natural
ordering of the keys.
Despite the method name, this method attempts to avoid actually copying the data when it is safe to do so. The exact circumstances under which a copy will or will not be performed are undocumented and subject to change.
This method is not type-safe, as it may be called on a map with keys that are not mutually comparable.
java.lang.ClassCastException
- if the keys in map
are not mutually comparablejava.lang.NullPointerException
- if any key or value in map
is nulljava.lang.IllegalArgumentException
- if any two keys are equal according to their natural orderingpublic static <K,V> ImmutableSortedMap<K,V> copyOf(java.util.Map<? extends K,? extends V> map, java.util.Comparator<? super K> comparator)
map
, with keys sorted by the
provided comparator.
Despite the method name, this method attempts to avoid actually copying the data when it is safe to do so. The exact circumstances under which a copy will or will not be performed are undocumented and subject to change.
java.lang.NullPointerException
- if any key or value in map
is nulljava.lang.IllegalArgumentException
- if any two keys are equal according to the comparatorpublic static <K,V> ImmutableSortedMap<K,V> copyOf(java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries)
This method is not type-safe, as it may be called on a map with keys that are not mutually comparable.
java.lang.NullPointerException
- if any key or value in map
is nulljava.lang.IllegalArgumentException
- if any two keys are equal according to the comparatorpublic static <K,V> ImmutableSortedMap<K,V> copyOf(java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries, java.util.Comparator<? super K> comparator)
java.lang.NullPointerException
- if any key or value in map
is nulljava.lang.IllegalArgumentException
- if any two keys are equal according to the comparatorpublic static <K,V> ImmutableSortedMap<K,V> copyOfSorted(java.util.SortedMap<K,? extends V> map)
Despite the method name, this method attempts to avoid actually copying the data when it is safe to do so. The exact circumstances under which a copy will or will not be performed are undocumented and subject to change.
java.lang.NullPointerException
- if any key or value in map
is nullprivate static <K,V> ImmutableSortedMap<K,V> copyOfInternal(java.util.Map<? extends K,? extends V> map, java.util.Comparator<? super K> comparator)
private static <K,V> ImmutableSortedMap<K,V> fromEntries(java.util.Comparator<? super K> comparator, boolean sameComparator, java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries)
sameComparator
, then it is assumed
that they do not need to be sorted or checked for dupes.private static <K,V> ImmutableSortedMap<K,V> fromEntries(java.util.Comparator<? super K> comparator, boolean sameComparator, java.util.Map.Entry<K,V>[] entryArray, int size)
public static <K extends java.lang.Comparable<?>,V> ImmutableSortedMap.Builder<K,V> naturalOrder()
Ordering.natural()
as the comparator.public static <K,V> ImmutableSortedMap.Builder<K,V> orderedBy(java.util.Comparator<K> comparator)
SortedMap<Integer, String>
with a Comparator<Number>
, use the ImmutableSortedMap.Builder
constructor instead.java.lang.NullPointerException
- if comparator
is nullpublic static <K extends java.lang.Comparable<?>,V> ImmutableSortedMap.Builder<K,V> reverseOrder()
public V get(java.lang.Object key)
boolean isPartialView()
isPartialView
in class ImmutableMap<K,V>
public ImmutableSet<java.util.Map.Entry<K,V>> entrySet()
ImmutableSet<java.util.Map.Entry<K,V>> createEntrySet()
createEntrySet
in class ImmutableMap<K,V>
public ImmutableSortedSet<K> keySet()
ImmutableSet<K> createKeySet()
createKeySet
in class ImmutableMap<K,V>
public ImmutableCollection<V> values()
ImmutableCollection<V> createValues()
createValues
in class ImmutableMap<K,V>
public java.util.Comparator<? super K> comparator()
Ordering.natural()
when the
natural ordering of the keys is used. Note that its behavior is not consistent with TreeMap.comparator()
, which returns null
to indicate natural ordering.private ImmutableSortedMap<K,V> getSubMap(int fromIndex, int toIndex)
public ImmutableSortedMap<K,V> headMap(K toKey)
ImmutableSortedMap
, consisting of the entries whose keys are less
than toKey
.
The SortedMap.headMap(K)
documentation states that a submap of a submap throws an
IllegalArgumentException
if passed a toKey
greater than an earlier toKey
. However, this method doesn't throw an exception in that situation, but instead keeps
the original toKey
.
public ImmutableSortedMap<K,V> headMap(K toKey, boolean inclusive)
ImmutableSortedMap
, consisting of the entries whose keys are less
than (or equal to, if inclusive
) toKey
.
The SortedMap.headMap(K)
documentation states that a submap of a submap throws an
IllegalArgumentException
if passed a toKey
greater than an earlier toKey
. However, this method doesn't throw an exception in that situation, but instead keeps
the original toKey
.
public ImmutableSortedMap<K,V> subMap(K fromKey, K toKey)
ImmutableSortedMap
, consisting of the entries whose keys ranges
from fromKey
, inclusive, to toKey
, exclusive.
The SortedMap.subMap(K, K)
documentation states that a submap of a submap throws an IllegalArgumentException
if passed a fromKey
less than an earlier fromKey
.
However, this method doesn't throw an exception in that situation, but instead keeps the
original fromKey
. Similarly, this method keeps the original toKey
, instead of
throwing an exception, if passed a toKey
greater than an earlier toKey
.
public ImmutableSortedMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
ImmutableSortedMap
, consisting of the entries whose keys ranges
from fromKey
to toKey
, inclusive or exclusive as indicated by the boolean
flags.
The SortedMap.subMap(K, K)
documentation states that a submap of a submap throws an IllegalArgumentException
if passed a fromKey
less than an earlier fromKey
.
However, this method doesn't throw an exception in that situation, but instead keeps the
original fromKey
. Similarly, this method keeps the original toKey
, instead of
throwing an exception, if passed a toKey
greater than an earlier toKey
.
public ImmutableSortedMap<K,V> tailMap(K fromKey)
ImmutableSortedMap
, consisting of the entries whose keys are
greater than or equals to fromKey
.
The SortedMap.tailMap(K)
documentation states that a submap of a submap throws an
IllegalArgumentException
if passed a fromKey
less than an earlier fromKey
. However, this method doesn't throw an exception in that situation, but instead keeps
the original fromKey
.
public ImmutableSortedMap<K,V> tailMap(K fromKey, boolean inclusive)
ImmutableSortedMap
, consisting of the entries whose keys are
greater than (or equal to, if inclusive
) fromKey
.
The SortedMap.tailMap(K)
documentation states that a submap of a submap throws an
IllegalArgumentException
if passed a fromKey
less than an earlier fromKey
. However, this method doesn't throw an exception in that situation, but instead keeps
the original fromKey
.
@Deprecated public final java.util.Map.Entry<K,V> pollFirstEntry()
@Deprecated public final java.util.Map.Entry<K,V> pollLastEntry()
public ImmutableSortedMap<K,V> descendingMap()
public ImmutableSortedSet<K> navigableKeySet()
public ImmutableSortedSet<K> descendingKeySet()
java.lang.Object writeReplace()
ImmutableMap
writeReplace
in class ImmutableMap<K,V>