@GwtCompatible(serializable=true, emulated=true) public final class ImmutableSortedMap<K,V> extends ImmutableMap<K,V> implements 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"). |
Modifier and Type | Method and Description |
---|---|
static <K,V> ImmutableSortedMap.Builder<K,V> |
builder()
Deprecated.
Use
naturalOrder() , which offers better type-safety. |
static <K,V> ImmutableSortedMap.Builder<K,V> |
builderWithExpectedSize(int expectedSize)
Deprecated.
Not supported for ImmutableSortedMap.
|
Map.Entry<K,V> |
ceilingEntry(K key)
Returns a key-value mapping associated with the least key
greater than or equal to the given key, or
null if
there is no such key. |
K |
ceilingKey(K key)
Returns the least key greater than or equal to the given key,
or
null if there is no such key. |
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(Iterable<? extends 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(Iterable<? extends Map.Entry<? extends K,? extends V>> entries,
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(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(Map<? extends K,? extends V> map,
Comparator<? super K> comparator)
Returns an immutable map containing the same entries as
map , with keys sorted by the
provided comparator. |
static <K,V> ImmutableSortedMap<K,V> |
copyOfSorted(SortedMap<K,? extends V> map)
Returns an immutable map containing the same entries as the provided sorted map, with the same
ordering.
|
ImmutableSortedSet<K> |
descendingKeySet()
Returns a reverse order
NavigableSet view of the keys contained in this map. |
ImmutableSortedMap<K,V> |
descendingMap()
Returns a reverse order view of the mappings contained in this map.
|
ImmutableSet<Map.Entry<K,V>> |
entrySet()
Returns an immutable set of the mappings in this map, sorted by the key ordering.
|
Map.Entry<K,V> |
firstEntry()
Returns a key-value mapping associated with the least
key in this map, or
null if the map is empty. |
K |
firstKey()
Returns the first (lowest) key currently in this map.
|
Map.Entry<K,V> |
floorEntry(K key)
Returns a key-value mapping associated with the greatest key
less than or equal to the given key, or
null if there
is no such key. |
K |
floorKey(K key)
Returns the greatest key less than or equal to the given key,
or
null if there is no such key. |
V |
get(Object key)
Returns the value to which the specified key is mapped,
or
null if this map contains no mapping for the key. |
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 . |
Map.Entry<K,V> |
higherEntry(K key)
Returns a key-value mapping associated with the least key
strictly greater than the given key, or
null if there
is no such key. |
K |
higherKey(K key)
Returns the least key strictly greater than the given key, or
null if there is no such key. |
ImmutableSortedSet<K> |
keySet()
Returns an immutable sorted set of the keys in this map.
|
Map.Entry<K,V> |
lastEntry()
Returns a key-value mapping associated with the greatest
key in this map, or
null if the map is empty. |
K |
lastKey()
Returns the last (highest) key currently in this map.
|
Map.Entry<K,V> |
lowerEntry(K key)
Returns a key-value mapping associated with the greatest key
strictly less than the given key, or
null if there is
no such key. |
K |
lowerKey(K key)
Returns the greatest key strictly less than the given key, or
null if there is no such key. |
static <K extends Comparable<?>,V> |
naturalOrder()
Returns a builder that creates immutable sorted maps whose keys are ordered by their natural
ordering.
|
ImmutableSortedSet<K> |
navigableKeySet()
Returns a
NavigableSet view of the keys contained in this map. |
static <K,V> ImmutableSortedMap<K,V> |
of()
Returns the empty sorted map.
|
static <K extends Comparable<? super K>,V> |
of(K k1,
V v1)
Returns an immutable map containing a single entry.
|
static <K extends 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 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 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 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.
|
static <K,V> ImmutableSortedMap.Builder<K,V> |
orderedBy(Comparator<K> comparator)
Returns a builder that creates immutable sorted maps with an explicit comparator.
|
Map.Entry<K,V> |
pollFirstEntry()
Deprecated.
Unsupported operation.
|
Map.Entry<K,V> |
pollLastEntry()
Deprecated.
Unsupported operation.
|
static <K extends Comparable<?>,V> |
reverseOrder()
Returns a builder that creates immutable sorted maps whose keys are ordered by the reverse of
their natural ordering.
|
int |
size()
Returns the number of key-value mappings in this map.
|
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 . |
ImmutableCollection<V> |
values()
Returns an immutable collection of the values in this map, sorted by the ordering of the
corresponding keys.
|
asMultimap, clear, containsKey, containsValue, equals, getOrDefault, hashCode, isEmpty, put, putAll, remove, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll
public static <K,V> ImmutableSortedMap<K,V> of()
public static <K extends Comparable<? super K>,V> ImmutableSortedMap<K,V> of(K k1, V v1)
public static <K extends Comparable<? super K>,V> ImmutableSortedMap<K,V> of(K k1, V v1, K k2, V v2)
IllegalArgumentException
- if the two keys are equal according to their natural orderingpublic static <K extends Comparable<? super K>,V> ImmutableSortedMap<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3)
IllegalArgumentException
- if any two keys are equal according to their natural orderingpublic static <K extends Comparable<? super K>,V> ImmutableSortedMap<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)
IllegalArgumentException
- if any two keys are equal according to their natural orderingpublic static <K extends 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)
IllegalArgumentException
- if any two keys are equal according to their natural orderingpublic static <K,V> ImmutableSortedMap<K,V> copyOf(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.
ClassCastException
- if the keys in map
are not mutually comparableNullPointerException
- if any key or value in map
is nullIllegalArgumentException
- if any two keys are equal according to their natural orderingpublic static <K,V> ImmutableSortedMap<K,V> copyOf(Map<? extends K,? extends V> map, 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.
NullPointerException
- if any key or value in map
is nullIllegalArgumentException
- if any two keys are equal according to the comparator@Beta public static <K,V> ImmutableSortedMap<K,V> copyOf(Iterable<? extends 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.
NullPointerException
- if any key or value in map
is nullIllegalArgumentException
- if any two keys are equal according to the comparator@Beta public static <K,V> ImmutableSortedMap<K,V> copyOf(Iterable<? extends Map.Entry<? extends K,? extends V>> entries, Comparator<? super K> comparator)
NullPointerException
- if any key or value in map
is nullIllegalArgumentException
- if any two keys are equal according to the comparatorpublic static <K,V> ImmutableSortedMap<K,V> copyOfSorted(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.
NullPointerException
- if any key or value in map
is nullpublic static <K extends Comparable<?>,V> ImmutableSortedMap.Builder<K,V> naturalOrder()
Ordering.natural()
as the comparator.public static <K,V> ImmutableSortedMap.Builder<K,V> orderedBy(Comparator<K> comparator)
SortedMap<Integer, String>
with a Comparator<Number>
, use the ImmutableSortedMap.Builder
constructor instead.NullPointerException
- if comparator
is nullpublic static <K extends Comparable<?>,V> ImmutableSortedMap.Builder<K,V> reverseOrder()
public int size()
java.util.Map
public V get(@NullableDecl Object key)
java.util.Map
null
if this map contains no mapping for the key.
More formally, if this map contains a mapping from a key
k
to a value v
such that (key==null ? k==null :
key.equals(k))
, then this method returns v
; otherwise
it returns null
. (There can be at most one such mapping.)
If this map permits null values, then a return value of
null
does not necessarily indicate that the map
contains no mapping for the key; it's also possible that the map
explicitly maps the key to null
. The containsKey
operation may be used to distinguish these two cases.
public ImmutableSet<Map.Entry<K,V>> entrySet()
public ImmutableSortedSet<K> keySet()
public ImmutableCollection<V> values()
public 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.comparator
in interface SortedMap<K,V>
null
if this map uses the natural ordering
of its keyspublic K firstKey()
java.util.SortedMap
public K lastKey()
java.util.SortedMap
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
.
headMap
in interface NavigableMap<K,V>
toKey
- high endpoint of the keys in the returned mapinclusive
- true
if the high endpoint
is to be included in the returned viewinclusive
is true) 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
.
subMap
in interface NavigableMap<K,V>
subMap
in interface SortedMap<K,V>
fromKey
- low endpoint (inclusive) of the keys in the returned maptoKey
- high endpoint (exclusive) of the keys in the returned mapfromKey
, inclusive, to toKey
, exclusivepublic 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
.
subMap
in interface NavigableMap<K,V>
fromKey
- low endpoint of the keys in the returned mapfromInclusive
- true
if the low endpoint
is to be included in the returned viewtoKey
- high endpoint of the keys in the returned maptoInclusive
- true
if the high endpoint
is to be included in the returned viewfromKey
to 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
.
tailMap
in interface NavigableMap<K,V>
fromKey
- low endpoint of the keys in the returned mapinclusive
- true
if the low endpoint
is to be included in the returned viewinclusive
is true) fromKey
public Map.Entry<K,V> lowerEntry(K key)
java.util.NavigableMap
null
if there is
no such key.lowerEntry
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keypublic K lowerKey(K key)
java.util.NavigableMap
null
if there is no such key.lowerKey
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keypublic Map.Entry<K,V> floorEntry(K key)
java.util.NavigableMap
null
if there
is no such key.floorEntry
in interface NavigableMap<K,V>
key
- the keykey
, or null
if there is no such keypublic K floorKey(K key)
java.util.NavigableMap
null
if there is no such key.floorKey
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keypublic Map.Entry<K,V> ceilingEntry(K key)
java.util.NavigableMap
null
if
there is no such key.ceilingEntry
in interface NavigableMap<K,V>
key
- the keykey
, or null
if there is no such keypublic K ceilingKey(K key)
java.util.NavigableMap
null
if there is no such key.ceilingKey
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keypublic Map.Entry<K,V> higherEntry(K key)
java.util.NavigableMap
null
if there
is no such key.higherEntry
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keypublic K higherKey(K key)
java.util.NavigableMap
null
if there is no such key.higherKey
in interface NavigableMap<K,V>
key
- the keykey
,
or null
if there is no such keypublic Map.Entry<K,V> firstEntry()
java.util.NavigableMap
null
if the map is empty.firstEntry
in interface NavigableMap<K,V>
null
if this map is emptypublic Map.Entry<K,V> lastEntry()
java.util.NavigableMap
null
if the map is empty.lastEntry
in interface NavigableMap<K,V>
null
if this map is empty@CanIgnoreReturnValue @Deprecated public final Map.Entry<K,V> pollFirstEntry()
pollFirstEntry
in interface NavigableMap<K,V>
null
if this map is emptyUnsupportedOperationException
- always@CanIgnoreReturnValue @Deprecated public final Map.Entry<K,V> pollLastEntry()
pollLastEntry
in interface NavigableMap<K,V>
null
if this map is emptyUnsupportedOperationException
- alwayspublic ImmutableSortedMap<K,V> descendingMap()
java.util.NavigableMap
remove
operation), the results of the iteration are undefined.
The returned map has an ordering equivalent to
Collections.reverseOrder
(comparator()).
The expression m.descendingMap().descendingMap()
returns a
view of m
essentially equivalent to m
.
descendingMap
in interface NavigableMap<K,V>
public ImmutableSortedSet<K> navigableKeySet()
java.util.NavigableMap
NavigableSet
view of the keys contained in this map.
The set's iterator returns the keys in ascending order.
The set is backed by the map, so changes to the map are reflected in
the set, and vice-versa. If the map is modified while an iteration
over the set is in progress (except through the iterator's own remove
operation), the results of the iteration are undefined. The
set supports element removal, which removes the corresponding mapping
from the map, via the Iterator.remove
, Set.remove
,
removeAll
, retainAll
, and clear
operations.
It does not support the add
or addAll
operations.navigableKeySet
in interface NavigableMap<K,V>
public ImmutableSortedSet<K> descendingKeySet()
java.util.NavigableMap
NavigableSet
view of the keys contained in this map.
The set's iterator returns the keys in descending order.
The set is backed by the map, so changes to the map are reflected in
the set, and vice-versa. If the map is modified while an iteration
over the set is in progress (except through the iterator's own remove
operation), the results of the iteration are undefined. The
set supports element removal, which removes the corresponding mapping
from the map, via the Iterator.remove
, Set.remove
,
removeAll
, retainAll
, and clear
operations.
It does not support the add
or addAll
operations.descendingKeySet
in interface NavigableMap<K,V>
@Deprecated public static <K,V> ImmutableSortedMap.Builder<K,V> builder()
naturalOrder()
, which offers better type-safety.naturalOrder()
, which offers better type-safety,
instead. This method exists only to hide ImmutableMap.builder()
from consumers of ImmutableSortedMap
.UnsupportedOperationException
- always@Deprecated public static <K,V> ImmutableSortedMap.Builder<K,V> builderWithExpectedSize(int expectedSize)
UnsupportedOperationException
- alwaysCopyright © 2010–2018. All rights reserved.