@GwtCompatible(serializable=true, emulated=true) public abstract class ImmutableSortedMap<K,V> extends ImmutableSortedMapFauxverideShim<K,V> implements java.util.NavigableMap<K,V>
SortedMap
. Does not permit null keys or values.
Unlike Collections.unmodifiableSortedMap(java.util.SortedMap<K, ? extends V>)
, which is a view
of a separate map which can still change, an instance of ImmutableSortedMap
contains its own data and will never change.
ImmutableSortedMap
is convenient for public static final
maps
("constant maps") and also lets you easily make a "defensive copy" of a map
provided to your class by a caller.
Note: Although this class is not final, it cannot be subclassed as it has no public or protected constructors. Thus, instances of this class are guaranteed to be immutable.
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
Serialized type for all ImmutableSortedMap instances.
|
Modifier and Type | Field and Description |
---|---|
private ImmutableSortedMap<K,V> |
descendingMap |
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 |
Constructor and Description |
---|
ImmutableSortedMap() |
ImmutableSortedMap(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. |
boolean |
containsValue(java.lang.Object value) |
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) abstract ImmutableSortedMap<K,V> |
createDescendingMap() |
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) |
(package private) static <K,V> ImmutableSortedMap<K,V> |
from(ImmutableSortedSet<K> keySet,
ImmutableList<V> valueList) |
(package private) static <K,V> ImmutableSortedMap<K,V> |
fromEntries(java.util.Comparator<? super K> comparator,
boolean sameComparator,
int size,
java.util.Map.Entry<K,V>... entries) |
(package private) static <K,V> ImmutableSortedMap<K,V> |
fromSortedEntries(java.util.Comparator<? super K> comparator,
int size,
java.util.Map.Entry<K,V>[] entries) |
ImmutableSortedMap<K,V> |
headMap(K toKey)
This method returns a
ImmutableSortedMap , consisting of the entries
whose keys are less than toKey . |
abstract 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() |
abstract 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.
|
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.
|
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() |
private static <K,V> void |
sortEntries(java.util.Comparator<? super K> comparator,
int size,
java.util.Map.Entry<K,V>[] entries) |
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 . |
abstract 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 . |
private static <K,V> void |
validateEntries(int size,
java.util.Map.Entry<K,V>[] entries,
java.util.Comparator<? super K> comparator) |
abstract 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() |
builder
asMultimap, checkNoConflict, clear, containsKey, createEntrySet, createKeySet, entryOf, equals, get, hashCode, isEmpty, put, putAll, remove, 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 transient ImmutableSortedMap<K,V> descendingMap
private static final long serialVersionUID
ImmutableSortedMap()
ImmutableSortedMap(ImmutableSortedMap<K,V> descendingMap)
static <K,V> ImmutableSortedMap<K,V> emptyMap(java.util.Comparator<? super K> comparator)
static <K,V> ImmutableSortedMap<K,V> fromSortedEntries(java.util.Comparator<? super K> comparator, int size, java.util.Map.Entry<K,V>[] entries)
static <K,V> ImmutableSortedMap<K,V> from(ImmutableSortedSet<K> keySet, ImmutableList<V> valueList)
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)
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 orderingpublic 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> 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)
static <K,V> ImmutableSortedMap<K,V> fromEntries(java.util.Comparator<? super K> comparator, boolean sameComparator, int size, java.util.Map.Entry<K,V>... entries)
private static <K,V> void sortEntries(java.util.Comparator<? super K> comparator, int size, java.util.Map.Entry<K,V>[] entries)
private static <K,V> void validateEntries(int size, java.util.Map.Entry<K,V>[] entries, java.util.Comparator<? super K> comparator)
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 boolean containsValue(@Nullable java.lang.Object value)
containsValue
in interface java.util.Map<K,V>
containsValue
in class ImmutableMap<K,V>
boolean isPartialView()
isPartialView
in class ImmutableMap<K,V>
public ImmutableSet<java.util.Map.Entry<K,V>> entrySet()
public abstract ImmutableSortedSet<K> keySet()
public abstract ImmutableCollection<V> values()
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.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 abstract 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 abstract 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()
abstract ImmutableSortedMap<K,V> createDescendingMap()
public ImmutableSortedSet<K> navigableKeySet()
public ImmutableSortedSet<K> descendingKeySet()
java.lang.Object writeReplace()
writeReplace
in class ImmutableMap<K,V>