public class TreeMap<K, V>

  1. Object
  2. AbstractMap<K, V>
  3. TreeMap

ImplementsMap<K, V>, NavigableMap<K, V>, SortedMap<K, V>

TreeMap is an implementation of SortedMap. All optional operations (adding and removing) are supported. The values can be any objects. The keys can be any objects which are comparable to each other either using their natural

Type parameter K: type of key Type parameter V: type of value

Constructors

public TreeMap()Constructs a new empty TreeMap instance.
public TreeMap(Comparator<? super K> comparator)Constructs a new empty TreeMap instance with the specified comparator.
public TreeMap(Map<? extends K, ? extends V> map)Constructs a new TreeMap instance containing the mappings from the specified map and using natural ordering.
public TreeMap(SortedMap<K, ? extends V> map)Constructs a new TreeMap instance containing the mappings from the specified SortedMap and using the same comparator.

Methods

public void clear()Removes all mappings from this TreeMap, leaving it empty.
public Comparator<? super K> comparator()Returns the comparator used to compare elements in this map.
public boolean containsKey(Object key)Returns whether this map contains the specified key.
public boolean containsValue(Object value)Returns whether this map contains the specified value.
public K firstKey()Returns the first key in this map.
public V get(Object key)Returns the value of the mapping with the specified key.
public Set<K> keySet()Returns a set of the keys contained in this map.
public K lastKey()Returns the last key in this map.
public V put(K key, V value)Maps the specified key to the specified value.
public void putAll(Map<? extends K, ? extends V> map)Copies all the mappings in the given map to this map.
public V remove(Object key)Removes the mapping with the specified key from this map.
public int size()Returns the number of mappings in this map.
public Collection<V> values()Returns a collection of the values contained in this map.
public Map.Entry<K, V> firstEntry()Answers the entry with the smallest key, or null if the map is empty.
public Map.Entry<K, V> lastEntry()Answers the entry with the biggest key, or null if the map is empty.
public Map.Entry<K, V> pollFirstEntry()Deletes and answers the entry with the smallest key, or null if the map is empty.
public Map.Entry<K, V> pollLastEntry()Deletes and answers the entry with the biggest key, or null if the map is empty.
public Map.Entry<K, V> higherEntry(K key)Answers an entry related with the smallest key greater than the specified key, or null if no such key.
public K higherKey(K key)Answers the smallest key greater than the specified key, or null if no such key.
public Map.Entry<K, V> lowerEntry(K key)Answers an entry related with the biggest key less than the specified key, or null if no such key.
public K lowerKey(K key)Answers the biggest key less than the specified key, or null if no such key.
public Map.Entry<K, V> ceilingEntry(K key)Answers an entry related with the smallest key greater than or equal to the specified key, or null if no such key.
public K ceilingKey(K key)Answers the smallest key greater than or equal to the specified key, or null if no such key.
public Map.Entry<K, V> floorEntry(K key)Answers an entry related with the biggest key less than or equal to the specified key, or null if no such key.
public K floorKey(K key)Answers the biggest key less than or equal to the specified key, or null if no such key.
public Set<Map.Entry<K, V>> entrySet()Returns a set containing all of the mappings in this map.
public NavigableSet<K> navigableKeySet()Answers a NavigableSet view of the keys in ascending order.
public NavigableSet<K> descendingKeySet()Answers a NavigableSet view of the keys in descending order.
public NavigableMap<K, V> descendingMap()Answers a reverse order view of the map.
public NavigableMap<K, V> subMap(K start, boolean startInclusive, K end, boolean endInclusive)Answers a view of part of the map whose keys is from startKey to endKey.
public NavigableMap<K, V> headMap(K end, boolean inclusive)Answers a view of the head of the map whose keys are smaller than (or equal to, depends on inclusive argument) endKey.
public NavigableMap<K, V> tailMap(K start, boolean inclusive)Answers a view of the tail of the map whose keys are bigger than (or equal to, depends on inclusive argument) startKey.
public SortedMap<K, V> subMap(K startKey, K endKey)Returns a sorted map over a range of this sorted map with all keys greater than or equal to the specified startKey and less than the specified endKey.
public SortedMap<K, V> headMap(K endKey)Returns a sorted map over a range of this sorted map with all keys that are less than the specified endKey.
public SortedMap<K, V> tailMap(K startKey)Returns a sorted map over a range of this sorted map with all keys that are greater than or equal to the specified startKey.

Inherited nested types

Inherited methods

Constructor details

TreeMap

public TreeMap()
Constructs a new empty TreeMap instance.

TreeMap

public TreeMap(Comparator<? super K> comparator)
Constructs a new empty TreeMap instance with the specified comparator.

Parameters

comparator Comparator<? super K>
the comparator to compare keys with.

TreeMap

public TreeMap(Map<? extends K, ? extends V> map)
Constructs a new TreeMap instance containing the mappings from the specified map and using natural ordering.

Parameters

map Map<? extends K, ? extends V>
the mappings to add.

Throws

ClassCastException
if a key in the specified map does not implement the Comparable interface, or if the keys in the map cannot be compared.

TreeMap

public TreeMap(SortedMap<K, ? extends V> map)
Constructs a new TreeMap instance containing the mappings from the specified SortedMap and using the same comparator.

Parameters

map SortedMap<K, ? extends V>
the mappings to add.

Method details

clear

public void clear()
Removes all mappings from this TreeMap, leaving it empty.

Throws

UnsupportedOperationException
if removing from this map is not supported.

comparator

public Comparator<? super K> comparator()
Returns the comparator used to compare elements in this map.

Returns

the comparator or null if the natural ordering is used.

containsKey

public boolean containsKey(Object key)
Returns whether this map contains the specified key.

Parameters

key Object
the key to search for.

Returns

true if this map contains the specified key, false otherwise.

Throws

ClassCastException
if the specified key cannot be compared with the keys in this map.
NullPointerException
if the specified key is null and the comparator cannot handle null keys.

containsValue

public boolean containsValue(Object value)
Returns whether this map contains the specified value.

Parameters

value Object
the value to search for.

Returns

true if this map contains the specified value, false otherwise.

firstKey

public K firstKey()
Returns the first key in this map.

Returns

the first key in this map.

Throws

NoSuchElementException
if this map is empty.

get

public V get(Object key)
Returns the value of the mapping with the specified key.

Parameters

key Object
the key.

Returns

the value of the mapping with the specified key.

Throws

ClassCastException
if the key cannot be compared with the keys in this map.
NullPointerException
if the key is null and the comparator cannot handle null.

keySet

public Set<K> keySet()
Returns a set of the keys contained in this map. The set is backed by this map so changes to one are reflected by the other. The set does not support adding.

Returns

a set of the keys.

lastKey

public K lastKey()
Returns the last key in this map.

Returns

the last key in this map.

Throws

NoSuchElementException
if this map is empty.

put

public V put(K key, V value)
Maps the specified key to the specified value.

Parameters

key K
the key.
value V
the value.

Returns

the value of any previous mapping with the specified key or null if there was no mapping.

Throws

ClassCastException
if the specified key cannot be compared with the keys in this map.
NullPointerException
if the specified key is null and the comparator cannot handle null keys.

putAll

public void putAll(Map<? extends K, ? extends V> map)
Copies all the mappings in the given map to this map. These mappings will replace all mappings that this map had for any of the keys currently in the given map.

Parameters

map Map<? extends K, ? extends V>
the map to copy mappings from.

Throws

ClassCastException
if a key in the specified map cannot be compared with the keys in this map.
NullPointerException
if a key in the specified map is null and the comparator cannot handle null keys.
UnsupportedOperationException
if adding to this map is not supported.
IllegalArgumentException
if a key or value cannot be added to this map.

remove

public V remove(Object key)
Removes the mapping with the specified key from this map.

Parameters

key Object
the key of the mapping to remove.

Returns

the value of the removed mapping or null if no mapping for the specified key was found.

Throws

ClassCastException
if the specified key cannot be compared with the keys in this map.
NullPointerException
if the specified key is null and the comparator cannot handle null keys.

size

public int size()
Returns the number of mappings in this map.

Returns

the number of mappings in this map.

values

public Collection<V> values()

Returns a collection of the values contained in this map. The collection is backed by this map so changes to one are reflected by the other. The collection supports remove, removeAll, retainAll and clear operations, and it does not support add or addAll operations.

This method returns a collection which is the subclass of AbstractCollection. The iterator method of this subclass returns a “wrapper object” over the iterator of map’s entrySet(). The size method wraps the map’s size method and the contains method wraps the map’s containsValue method.

The collection is created when this method is called for the first time and returned in response to all subsequent calls. This method may return different collections when multiple concurrent calls occur, since no synchronization is performed.

Returns

a collection of the values contained in this map.

firstEntry

public Map.Entry<K, V> firstEntry()
Answers the entry with the smallest key, or null if the map is empty.

Returns

the entry with the smallest key, or null if the map is empty

lastEntry

public Map.Entry<K, V> lastEntry()
Answers the entry with the biggest key, or null if the map is empty.

Returns

the entry with the biggest key, or null if the map is empty

pollFirstEntry

public Map.Entry<K, V> pollFirstEntry()
Deletes and answers the entry with the smallest key, or null if the map is empty.

Returns

the entry with the smallest key, or null if the map is empty

pollLastEntry

public Map.Entry<K, V> pollLastEntry()
Deletes and answers the entry with the biggest key, or null if the map is empty.

Returns

the entry with the biggest key, or null if the map is empty

higherEntry

public Map.Entry<K, V> higherEntry(K key)
Answers an entry related with the smallest key greater than the specified key, or null if no such key.

Parameters

key K
the key

Returns

the entry, or null if no such key

Throws

ClassCastException
if the key cannot be compared with the keys in the map
NullPointerException
if the key is null and the map can not contain null key

higherKey

public K higherKey(K key)
Answers the smallest key greater than the specified key, or null if no such key.

Parameters

key K
the key

Returns

the smallest key greater than key, or null if no such key

Throws

ClassCastException
if the key cannot be compared with the keys in the map
NullPointerException
if the key is null and the map can not contain null key

lowerEntry

public Map.Entry<K, V> lowerEntry(K key)
Answers an entry related with the biggest key less than the specified key, or null if no such key.

Parameters

key K
the key

Returns

the entry, or null if no such key

Throws

ClassCastException
if the key cannot be compared with the keys in the map
NullPointerException
if the key is null and the map can not contain null key

lowerKey

public K lowerKey(K key)
Answers the biggest key less than the specified key, or null if no such key.

Parameters

key K
the key

Returns

the biggest key less than key, or null if no such key

Throws

ClassCastException
if the key cannot be compared with the keys in the map
NullPointerException
if the key is null and the map can not contain null key

ceilingEntry

public Map.Entry<K, V> ceilingEntry(K key)
Answers an entry related with the smallest key greater than or equal to the specified key, or null if no such key.

Parameters

key K
the key

Returns

the entry, or null if no such key

Throws

ClassCastException
if the key cannot be compared with the keys in the map
NullPointerException
if the key is null and the map can not contain null key

ceilingKey

public K ceilingKey(K key)
Answers the smallest key greater than or equal to the specified key, or null if no such key.

Parameters

key K
the key

Returns

the smallest key greater than or equal to key, or null if no such key

Throws

ClassCastException
if the key cannot be compared with the keys in the map
NullPointerException
if the key is null and the map can not contain null key

floorEntry

public Map.Entry<K, V> floorEntry(K key)
Answers an entry related with the biggest key less than or equal to the specified key, or null if no such key.

Parameters

key K
the key

Returns

the entry, or null if no such key

Throws

ClassCastException
if the key cannot be compared with the keys in the map
NullPointerException
if the key is null and the map can not contain null key

floorKey

public K floorKey(K key)
Answers the biggest key less than or equal to the specified key, or null if no such key.

Parameters

key K
the key

Returns

the biggest key less than or equal to key, or null if no such key

Throws

ClassCastException
if the key cannot be compared with the keys in the map
NullPointerException
if the key is null and the map can not contain null key

entrySet

public Set<Map.Entry<K, V>> entrySet()
Returns a set containing all of the mappings in this map. Each mapping is an instance of Map.Entry. As the set is backed by this map, changes in one will be reflected in the other. It does not support adding operations.

Returns

a set of the mappings.

descendingKeySet

public NavigableSet<K> descendingKeySet()
Answers a NavigableSet view of the keys in descending order.

Returns

the navigable set view

descendingMap

public NavigableMap<K, V> descendingMap()
Answers a reverse order view of the map.

Returns

the reverse order view of the map

subMap

public NavigableMap<K, V> subMap(K start, boolean startInclusive, K end, boolean endInclusive)
Answers a view of part of the map whose keys is from startKey to endKey.

Parameters

start K
the start key
startInclusive boolean
true if the start key is in the returned map
end K
the end key
endInclusive boolean
true if the end key is in the returned map

Returns

the sub-map view

Throws

ClassCastException
when the class of the start or end key is inappropriate for this SubMap
NullPointerException
when the start or end key is null and this SortedMap does not support null keys
IllegalArgumentException
when the start key is greater than the end key

headMap

public NavigableMap<K, V> headMap(K end, boolean inclusive)
Answers a view of the head of the map whose keys are smaller than (or equal to, depends on inclusive argument) endKey.

Parameters

end K
the end key
inclusive boolean
true if the end key is in the returned map

Returns

the head-map view

Throws

ClassCastException
when the class of the end key is inappropriate for this SubMap
NullPointerException
when the end key is null and this SortedMap does not support null keys
IllegalArgumentException
when the map is range-limited and end key is out of the range of the map

tailMap

public NavigableMap<K, V> tailMap(K start, boolean inclusive)
Answers a view of the tail of the map whose keys are bigger than (or equal to, depends on inclusive argument) startKey.

Parameters

start K
the start key
inclusive boolean
true if the start key is in the returned map

Returns

the tail-map view

Throws

ClassCastException
when the class of the start key is inappropriate for this SubMap
NullPointerException
when the start key is null and this SortedMap does not support null keys
IllegalArgumentException
when the map is range-limited and start key is out of the range of the map

subMap

public SortedMap<K, V> subMap(K startKey, K endKey)

Returns a sorted map over a range of this sorted map with all keys greater than or equal to the specified startKey and less than the specified endKey. Changes to the returned sorted map are reflected in this sorted map and vice versa.

Note: The returned map will not allow an insertion of a key outside the specified range.

Parameters

startKey K
the low boundary of the range (inclusive).
endKey K
the high boundary of the range (exclusive),

Returns

a sorted map with the key from the specified range.

Throws

ClassCastException
if the start or end key cannot be compared with the keys in this map.
NullPointerException
if the start or end key is null and the comparator cannot handle null keys.
IllegalArgumentException
if the start key is greater than the end key, or if this map is itself a sorted map over a range of another sorted map and the specified range is outside of its range.

headMap

public SortedMap<K, V> headMap(K endKey)

Returns a sorted map over a range of this sorted map with all keys that are less than the specified endKey. Changes to the returned sorted map are reflected in this sorted map and vice versa.

Note: The returned map will not allow an insertion of a key outside the specified range.

Parameters

endKey K
the high boundary of the range specified.

Returns

a sorted map where the keys are less than endKey.

Throws

ClassCastException
if the specified key cannot be compared with the keys in this map.
NullPointerException
if the specified key is null and the comparator cannot handle null keys.
IllegalArgumentException
if this map is itself a sorted map over a range of another map and the specified key is outside of its range.

tailMap

public SortedMap<K, V> tailMap(K startKey)

Returns a sorted map over a range of this sorted map with all keys that are greater than or equal to the specified startKey. Changes to the returned sorted map are reflected in this sorted map and vice versa.

Note: The returned map will not allow an insertion of a key outside the specified range.

Parameters

startKey K
the low boundary of the range specified.

Returns

a sorted map where the keys are greater or equal to startKey.

Throws

ClassCastException
if the specified key cannot be compared with the keys in this map.
NullPointerException
if the specified key is null and the comparator cannot handle null keys.
IllegalArgumentException
if this map itself a sorted map over a range of another map and the specified key is outside of its range.