java.util
public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, Serializable
This implementation is not synchronized. If you need to share this between
multiple threads, do something like:
SortedMap m
= Collections.synchronizedSortedMap(new TreeMap(...));
The iterators are fail-fast, meaning that any structural
modification, except for remove()
called on the iterator
itself, cause the iterator to throw a
ConcurrentModificationException
rather than exhibit
non-deterministic behavior.
Since: 1.2
See Also: Map HashMap Hashtable LinkedHashMap Comparable Comparator Collection synchronizedSortedMap
UNKNOWN: updated to 1.6
Constructor Summary | |
---|---|
TreeMap()
Instantiate a new TreeMap with no elements, using the keys' natural
ordering to sort. | |
TreeMap(Comparator<? super K> c)
Instantiate a new TreeMap with no elements, using the provided comparator
to sort. | |
TreeMap(Map<? extends K,? extends V> map)
Instantiate a new TreeMap, initializing it with all of the elements in
the provided Map. | |
TreeMap(SortedMap<K,? extends V> sm)
Instantiate a new TreeMap, initializing it with all of the elements in
the provided SortedMap. |
Method Summary | |
---|---|
Entry<K,V> | ceilingEntry(K key)
Returns the entry associated with the least or lowest key
that is greater than or equal to the specified key, or
null if there is no such key.
|
K | ceilingKey(K key)
Returns the the least or lowest key that is greater than
or equal to the specified key, or null if
there is no such key.
|
void | clear()
Clears the Map so it has no keys. |
Object | clone()
Returns a shallow clone of this TreeMap. |
Comparator<? super K> | comparator()
Return the comparator used to sort this map, or null if it is by
natural order.
|
boolean | containsKey(Object key)
Returns true if the map contains a mapping for the given key.
|
boolean | containsValue(Object value)
Returns true if the map contains at least one mapping to the given value.
|
NavigableSet<K> | descendingKeySet()
Returns a reverse ordered {@link NavigableSet} view of this
map's keys. |
NavigableMap<K,V> | descendingMap()
Returns a view of the map in reverse order. |
Set<Entry<K,V>> | entrySet()
Returns a "set view" of this TreeMap's entries. |
Entry<K,V> | firstEntry()
Returns the entry associated with the least or lowest key
in the map, or null if the map is empty.
|
K | firstKey()
Returns the first (lowest) key in the map.
|
Entry<K,V> | floorEntry(K key)
Returns the entry associated with the greatest or highest key
that is less than or equal to the specified key, or
null if there is no such key.
|
K | floorKey(K key)
Returns the the greatest or highest key that is less than
or equal to the specified key, or null if
there is no such key.
|
V | get(Object key)
Return the value in this TreeMap associated with the supplied key,
or null if the key maps to nothing. |
SortedMap<K,V> | headMap(K toKey)
Returns a view of this Map including all entries with keys less than
toKey . |
NavigableMap<K,V> | headMap(K toKey, boolean inclusive)
Returns a view of this Map including all entries with keys less than
(or equal to, if inclusive is true) toKey .
|
Entry<K,V> | higherEntry(K key)
Returns the entry associated with the least or lowest key
that is strictly greater than the specified key, or
null if there is no such key.
|
K | higherKey(K key)
Returns the the least or lowest key that is strictly
greater than the specified key, or null if
there is no such key.
|
Set<K> | keySet()
Returns a "set view" of this TreeMap's keys. |
Entry<K,V> | lastEntry()
Returns the entry associated with the greatest or highest key
in the map, or null if the map is empty.
|
K | lastKey()
Returns the last (highest) key in the map.
|
Entry<K,V> | lowerEntry(K key)
Returns the entry associated with the greatest or highest key
that is strictly less than the specified key, or
null if there is no such key.
|
K | lowerKey(K key)
Returns the the greatest or highest key that is strictly
less than the specified key, or null if
there is no such key.
|
NavigableSet<K> | navigableKeySet()
Returns a {@link NavigableSet} view of this map's keys. |
Entry<K,V> | pollFirstEntry()
Removes and returns the entry associated with the least
or lowest key in the map, or null if the map
is empty.
|
Entry<K,V> | pollLastEntry()
Removes and returns the entry associated with the greatest
or highest key in the map, or null if the map
is empty.
|
V | put(K key, V value)
Puts the supplied value into the Map, mapped by the supplied key.
|
void | putAll(Map<? extends K,? extends V> m)
Copies all elements of the given map into this TreeMap. |
V | remove(Object key)
Removes from the TreeMap and returns the value which is mapped by the
supplied key. |
int | size()
Returns the number of key-value mappings currently in this Map.
|
SortedMap<K,V> | subMap(K fromKey, K toKey)
Returns a view of this Map including all entries with keys greater or
equal to fromKey and less than toKey (a
half-open interval). |
NavigableMap<K,V> | subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
Returns a view of this Map including all entries with keys greater (or
equal to, if fromInclusive is true) fromKey and
less than (or equal to, if toInclusive is true)
toKey . |
SortedMap<K,V> | tailMap(K fromKey)
Returns a view of this Map including all entries with keys greater or
equal to fromKey . |
NavigableMap<K,V> | tailMap(K fromKey, boolean inclusive)
Returns a view of this Map including all entries with keys greater or
equal to fromKey . |
Collection<V> | values()
Returns a "collection view" (or "bag view") of this TreeMap's values.
|
See Also: Comparable
Parameters: c the sort order for the keys of this map, or null for the natural order
Parameters: map a Map, whose entries will be put into this TreeMap
Throws: ClassCastException if the keys in the provided Map are not comparable NullPointerException if map is null
See Also: Comparable
Parameters: sm a SortedMap, whose entries will be put into this TreeMap
Throws: NullPointerException if sm is null
null
if there is no such key.
Parameters: key the key relative to the returned entry.
Returns: the entry with the least key greater than or equal
to the given key, or null
if there is
no such key.
Throws: ClassCastException if the specified key can not
be compared with those in the map. NullPointerException if the key is null
and this map either uses natural
ordering or a comparator that does
not permit null keys.
Since: 1.6
null
if
there is no such key.
Parameters: key the key relative to the returned entry.
Returns: the least key greater than or equal to the given key,
or null
if there is no such key.
Throws: ClassCastException if the specified key can not
be compared with those in the map. NullPointerException if the key is null
and this map either uses natural
ordering or a comparator that does
not permit null keys.
Since: 1.6
Returns: the clone
Returns: the map's comparator
Parameters: key the key to look for
Returns: true if the key has a mapping
Throws: ClassCastException if key is not comparable to map elements NullPointerException if key is null and the comparator is not tolerant of nulls
Parameters: value the value to look for
Returns: true if the value appears in a mapping
Returns: a reverse ordered set view of the keys.
Since: 1.6
See Also: descendingMap
Returns: a reverse order view of the map.
Since: 1.6
Note that the iterators for all three views, from keySet(), entrySet(), and values(), traverse the TreeMap in sorted sequence.
Returns: a set view of the entries
null
if the map is empty.
Returns: the lowest entry, or null
if the map
is empty.
Since: 1.6
Returns: the first key
Throws: NoSuchElementException if the map is empty
null
if there is no such key.
Parameters: key the key relative to the returned entry.
Returns: the entry with the greatest key less than or equal
to the given key, or null
if there is
no such key.
Throws: ClassCastException if the specified key can not
be compared with those in the map. NullPointerException if the key is null
and this map either uses natural
ordering or a comparator that does
not permit null keys.
Since: 1.6
null
if
there is no such key.
Parameters: key the key relative to the returned entry.
Returns: the greatest key less than or equal to the given key,
or null
if there is no such key.
Throws: ClassCastException if the specified key can not
be compared with those in the map. NullPointerException if the key is null
and this map either uses natural
ordering or a comparator that does
not permit null keys.
Since: 1.6
null
if the key maps to nothing. NOTE: Since the value
could also be null, you must use containsKey to see if this key
actually maps to something.
Parameters: key the key for which to fetch an associated value
Returns: what the key maps to, if present
Throws: ClassCastException if key is not comparable to elements in the map NullPointerException if key is null but the comparator does not tolerate nulls
See Also: TreeMap containsKey
toKey
. The returned map is backed by the original, so changes
in one appear in the other. The submap will throw an
{@link IllegalArgumentException} for any attempt to access or add an
element beyond the specified cutoff. The returned map does not include
the endpoint; if you want inclusion, pass the successor element
or call headMap(toKey, true)
. This is equivalent to
calling headMap(toKey, false)
.
Parameters: toKey the (exclusive) cutoff point
Returns: a view of the map less than the cutoff
Throws: ClassCastException if toKey
is not compatible with
the comparator (or is not Comparable, for natural ordering) NullPointerException if toKey is null, but the comparator does not
tolerate null elements
inclusive
is true) toKey
.
The returned map is backed by the original, so changes in one appear
in the other. The submap will throw an {@link IllegalArgumentException}
for any attempt to access or add an element beyond the specified cutoff.
Parameters: toKey the cutoff point inclusive true if the cutoff point should be included.
Returns: a view of the map less than (or equal to, if inclusive
is true) the cutoff.
Throws: ClassCastException if toKey
is not compatible with
the comparator (or is not Comparable, for natural ordering) NullPointerException if toKey is null, but the comparator does not
tolerate null elements
null
if there is no such key.
Parameters: key the key relative to the returned entry.
Returns: the entry with the least key greater than
the given key, or null
if there is
no such key.
Throws: ClassCastException if the specified key can not
be compared with those in the map. NullPointerException if the key is null
and this map either uses natural
ordering or a comparator that does
not permit null keys.
Since: 1.6
null
if
there is no such key.
Parameters: key the key relative to the returned entry.
Returns: the least key greater than the given key,
or null
if there is no such key.
Throws: ClassCastException if the specified key can not
be compared with those in the map. NullPointerException if the key is null
and this map either uses natural
ordering or a comparator that does
not permit null keys.
Since: 1.6
Returns: a set view of the keys
null
if the map is empty.
Returns: the highest entry, or null
if the map
is empty.
Since: 1.6
Returns: the last key
Throws: NoSuchElementException if the map is empty
null
if there is no such key.
Parameters: key the key relative to the returned entry.
Returns: the entry with the greatest key less than
the given key, or null
if there is
no such key.
Throws: ClassCastException if the specified key can not
be compared with those in the map. NullPointerException if the key is null
and this map either uses natural
ordering or a comparator that does
not permit null keys.
Since: 1.6
null
if
there is no such key.
Parameters: key the key relative to the returned entry.
Returns: the greatest key less than the given key,
or null
if there is no such key.
Throws: ClassCastException if the specified key can not
be compared with those in the map. NullPointerException if the key is null
and this map either uses natural
ordering or a comparator that does
not permit null keys.
Since: 1.6
Returns: a {@link NavigableSet} view of the keys.
Since: 1.6
null
if the map
is empty.
Returns: the removed first entry, or null
if the
map is empty.
Since: 1.6
null
if the map
is empty.
Returns: the removed last entry, or null
if the
map is empty.
Since: 1.6
equals()
this key. NOTE: Since the prior value could also be null, you must
first use containsKey if you want to see if you are replacing the
key's mapping.
Parameters: key the key used to locate the value value the value to be stored in the Map
Returns: the prior mapping of the key, or null if there was none
Throws: ClassCastException if key is not comparable to current map keys NullPointerException if key is null, but the comparator does not tolerate nulls
Parameters: m the map to be added
Throws: ClassCastException if a key in m is not comparable with keys in the map NullPointerException if a key in m is null, and the comparator does not tolerate nulls
null
is returned. NOTE: Since the value
could also be null, you must use containsKey to see if you are
actually removing a mapping.
Parameters: key the key used to locate the value to remove
Returns: whatever the key mapped to, if present
Throws: ClassCastException if key is not comparable to current map keys NullPointerException if key is null, but the comparator does not tolerate nulls
Returns: the size
fromKey
and less than toKey
(a
half-open interval). The returned map is backed by the original, so
changes in one appear in the other. The submap will throw an
{@link IllegalArgumentException} for any attempt to access or add an
element beyond the specified cutoffs. The returned map includes the low
endpoint but not the high; if you want to reverse this behavior on
either end, pass in the successor element or call
{@link #subMap(K,boolean,K,boolean)}. This call is equivalent to
subMap(fromKey, true, toKey, false)
.
Parameters: fromKey the (inclusive) low cutoff point toKey the (exclusive) high cutoff point
Returns: a view of the map between the cutoffs
Throws: ClassCastException if either cutoff is not compatible with the comparator (or is not Comparable, for natural ordering) NullPointerException if fromKey or toKey is null, but the comparator does not tolerate null elements IllegalArgumentException if fromKey is greater than toKey
fromInclusive
is true) fromKey
and
less than (or equal to, if toInclusive
is true)
toKey
. The returned map is backed by the original, so
changes in one appear in the other. The submap will throw an
{@link IllegalArgumentException} for any attempt to access or add an
element beyond the specified cutoffs.
Parameters: fromKey the low cutoff point fromInclusive true if the low cutoff point should be included. toKey the high cutoff point toInclusive true if the high cutoff point should be included.
Returns: a view of the map for the specified range.
Throws: ClassCastException if either cutoff is not compatible with the comparator (or is not Comparable, for natural ordering) NullPointerException if fromKey or toKey is null, but the comparator does not tolerate null elements IllegalArgumentException if fromKey is greater than toKey
fromKey
. The returned map is backed by the
original, so changes in one appear in the other. The submap will throw an
{@link IllegalArgumentException} for any attempt to access or add an
element beyond the specified cutoff. The returned map includes the
endpoint; if you want to exclude it, pass in the successor element.
This is equivalent to calling tailMap(fromKey, true)
.
Parameters: fromKey the (inclusive) low cutoff point
Returns: a view of the map above the cutoff
Throws: ClassCastException if fromKey
is not compatible with
the comparator (or is not Comparable, for natural ordering) NullPointerException if fromKey is null, but the comparator
does not tolerate null elements
fromKey
. The returned map is backed by the
original, so changes in one appear in the other. The submap will throw an
{@link IllegalArgumentException} for any attempt to access or add an
element beyond the specified cutoff. The returned map includes the
endpoint; if you want to exclude it, pass in the successor element.
Parameters: fromKey the low cutoff point inclusive true if the cutoff point should be included.
Returns: a view of the map above the cutoff
Throws: ClassCastException if fromKey
is not compatible with
the comparator (or is not Comparable, for natural ordering) NullPointerException if fromKey is null, but the comparator
does not tolerate null elements