Map
that further provides a total ordering on its keys.
The map is ordered according to the natural
ordering of its keys, or by a Comparator
typically
provided at sorted map creation time. This order is reflected when
iterating over the sorted map's collection views (returned by the
entrySet
, keySet
and values
methods).
Several additional operations are provided to take advantage of the
ordering. (This interface is the map analogue of SortedSet
.)
All keys inserted into a sorted map must implement the Comparable
interface (or be accepted by the specified comparator). Furthermore, all
such keys must be mutually comparable: k1.compareTo(k2)
(or
comparator.compare(k1, k2)
) must not throw a
ClassCastException
for any keys k1
and k2
in
the sorted map. Attempts to violate this restriction will cause the
offending method or constructor invocation to throw a
ClassCastException
.
Note that the ordering maintained by a sorted map (whether or not an
explicit comparator is provided) must be consistent with equals if
the sorted map is to correctly implement the Map
interface. (See
the Comparable
interface or Comparator
interface for a
precise definition of consistent with equals.) This is so because
the Map
interface is defined in terms of the equals
operation, but a sorted map performs all key comparisons using its
compareTo
(or compare
) method, so two keys that are
deemed equal by this method are, from the standpoint of the sorted map,
equal. The behavior of a tree map is well-defined even if its
ordering is inconsistent with equals; it just fails to obey the general
contract of the Map
interface.
All general-purpose sorted map implementation classes should provide four "standard" constructors. It is not possible to enforce this recommendation though as required constructors cannot be specified by interfaces. The expected "standard" constructors for all sorted map implementations are:
Comparator
, which
creates an empty sorted map sorted according to the specified comparator.Map
, which creates
a new map with the same key-value mappings as its argument, sorted
according to the keys' natural ordering.SortedMap
, which
creates a new sorted map with the same key-value mappings and the same
ordering as the input sorted map.Note
several methods return submaps with restricted key
ranges. Such ranges are half-open, that is, they include their low
endpoint but not their high endpoint (where applicable). If you need a
closed range (which includes both endpoints), and the key type
allows for calculation of the successor of a given key, merely request
the subrange from lowEndpoint
to
successor(highEndpoint)
. For example, suppose that m
is a map whose keys are strings. The following idiom obtains a view
containing all of the key-value mappings in m
whose keys are
between low
and high
, inclusive:
SortedMap<String, V> sub = m.subMap(low, high+"\0");A similar technique can be used to generate an open range (which contains neither endpoint). The following idiom obtains a view containing all of the key-value mappings in
m
whose keys
are between low
and high
, exclusive:SortedMap<String, V> sub = m.subMap(low+"\0", high);
This interface is a member of the Java Collections Framework.
Map
, TreeMap
, SortedSet
, Comparator
, Comparable
, Collection
, ClassCastException
Modifier and Type | Method and Description |
---|---|
public Comparator | Returns: the comparator used to order the keys in this map, ornull if this map uses the natural ordering
of its keysReturns the comparator used to order the keys in this map, or
|
public Set | Returns: a set view of the mappings contained in this map, sorted in ascending key orderRedeclares java. Returns a |
public K | Returns: the first (lowest) key currently in this mapReturns the first (lowest) key currently in this map. |
public SortedMap | Returns: a view of the portion of this map whose keys are strictly less thantoKey high endpoint (exclusive) of the keys in the returned map toKey)Returns a view of the portion of this map whose keys are
strictly less than |
public Set | Returns: a set view of the keys contained in this map, sorted in ascending orderRedeclares java. Returns a |
public K | Returns: the last (highest) key currently in this mapReturns the last (highest) key currently in this map. |
public default V | putFirst(K
the key k, V the value v)Overrides default java. Throws |
public default V | putLast(K
the key k, V the value v)Overrides default java. Throws |
public default SortedMap | Returns: a reverse-ordered view of this map, as aSortedMap Implements java. Returns a reverse-ordered view of this map. |
public SortedMap | Returns: a view of the portion of this map whose keys range fromfromKey , inclusive, to toKey , exclusivelow endpoint (inclusive) of the keys in the returned map fromKey, K high endpoint (exclusive) of the keys in the returned map toKey)Returns a view of the portion of this map whose keys range from
|
public SortedMap | Returns: a view of the portion of this map whose keys are greater than or equal tofromKey low endpoint (inclusive) of the keys in the returned map fromKey)Returns a view of the portion of this map whose keys are
greater than or equal to |
public Collection | Returns: a collection view of the values contained in this map, sorted in ascending key orderRedeclares java. Returns a |
comparator | back to summary |
---|---|
public Comparator Returns the comparator used to order the keys in this map, or
|
entrySet | back to summary |
---|---|
public Set Redeclares java. Returns a |
firstKey | back to summary |
---|---|
public K firstKey() Returns the first (lowest) key currently in this map.
|
headMap | back to summary |
---|---|
public SortedMap Returns a view of the portion of this map whose keys are
strictly less than The returned map will throw an
|
keySet | back to summary |
---|---|
public Set Redeclares java. Returns a
|
lastKey | back to summary |
---|---|
public K lastKey() Returns the last (highest) key currently in this map.
|
putFirst | back to summary |
---|---|
public default V putFirst(K k, V v) Overrides default java. Throws Implementation Specification The implementation in this interface always throws
|
putLast | back to summary |
---|---|
public default V putLast(K k, V v) Overrides default java. Throws Implementation Specification The implementation in this interface always throws
|
reversed | back to summary |
---|---|
public default SortedMap Implements java. Doc from java. Returns a reverse-ordered view of this map. The encounter order of mappings in the returned view is the inverse of the encounter order of mappings in this map. The reverse ordering affects all order-sensitive operations, including those on the view collections of the returned view. If the implementation permits modifications to this view, the modifications "write through" to the underlying map. Changes to the underlying map might or might not be visible in this reversed view, depending upon the implementation. Implementation Specification The implementation in this interface returns a reverse-ordered SortedMap
view. The
|
subMap | back to summary |
---|---|
public SortedMap Returns a view of the portion of this map whose keys range from
The returned map will throw an
|
tailMap | back to summary |
---|---|
public SortedMap Returns a view of the portion of this map whose keys are
greater than or equal to The returned map will throw an
|
values | back to summary |
---|---|
public Collection Redeclares java. Returns a
|