TopBlend: Here is the first difference. There are 83 differences. is old. is new.

java.util
Interface SortedMap<K,V>

Type Parameters:
K - the type of keys maintained by this map
V - the type of mapped values
All Superinterfaces:
Map <K,V>
All Known Subinterfaces: Implementing Classes:
ConcurrentNavigableMap TreeMap <K,V>, NavigableMap <K,V>
All Known Implementing Classes:
ConcurrentSkipListMap , TreeMap

public interface SortedMap<K,V>
extends Map<K,V>

A Map that further provides a A map that further guarantees that it will be in ascending key order, sorted according to the total natural 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 of its keys (see the Comparable interface), or by a comparator 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 .) the SortedSet interface.)

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 elements 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: 1) A void (no arguments) constructor, which creates an empty sorted map sorted according to the natural ordering of its keys. 2) A constructor with a single argument of type Comparator , which creates an empty sorted map sorted according to the specified comparator. 3) A constructor with a single argument of type Map , which creates a new map with the same key-value mappings as its argument, sorted according to the keys' natural ordering. 4) A constructor with a single argument of type SortedMap , which creates a new sorted map with the same key-value mappings and the same ordering as the input sorted map. There is no way to enforce this recommendation, as interfaces cannot contain constructors.

Note: several methods return submaps with restricted key ranges. Such ranges are All general-purpose sorted map implementation classes should provide four "standard" constructors: 1) A void (no arguments) constructor, which creates an empty sorted map sorted according to the half-open natural order , 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 of its keys. 2) A constructor with a single argument of type lowEndpoint Comparator to , which creates an empty sorted map sorted according to the specified comparator. 3) A constructor with a single argument of type successor(highEndpoint) Map . 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); 
, which creates a new map with the same key-value mappings as its argument, sorted according to the keys' natural ordering. 4) A constructor with a single argument of type sorted map, which creates a new sorted map with the same key-value mappings and the same ordering as the input sorted map. There is no way to enforce this recommendation (as interfaces cannot contain constructors) but the JDK implementation (TreeMap) complies.

This interface is a member of the Java Collections Framework .

Since:
1.2
See Also:
Map , TreeMap , SortedSet , Comparator , Comparable , Collection , ClassCastException

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util. Map
Map.Entry < K , V >
 
Method Summary
  Comparator <? super K comparator ()
          Returns the comparator used to order the keys in associated with this sorted map, or null if this map it uses the natural ordering its keys' natural ordering.
  Set < Map.Entry < K , V entrySet firstKey ()
          Returns a Set the first (lowest) key currently in this sorted map.
  K firstKey ()
          Returns the first (lowest) key currently in this map.
  SortedMap < K , V headMap ( K
          Returns a view of the portion of this sorted map whose keys are strictly less than toKey.
  SortedMap < K , V headMap ( K
          Returns a view of the portion of this map whose keys are strictly less than toKey .
  K lastKey ()
          Returns the last (highest) key currently in this sorted map.
  Set < K keySet ()
          Returns a Set
  SortedMap < K , V subMap ( K  fromKey, K
          Returns a view of the portion of this sorted map whose keys range from fromKey , inclusive, to toKey , exclusive.
  K lastKey ()
          Returns the last (highest) key currently in this map.
  SortedMap < K , V tailMap ( K
          Returns a view of the portion of this sorted map whose keys are greater than or equal to fromKey .
  SortedMap < K , V subMap ( K  fromKey, K
          Returns a view of the portion of this map whose keys range from fromKey , inclusive, to toKey , exclusive.
  SortedMap < K , V tailMap ( K
          Returns a view of the portion of this map whose keys are greater than or equal to fromKey .
  Collection < V values ()
          Returns a Collection
 
Methods inherited from interface java.util. Map
clear , containsKey , containsValue , entrySet , equals , get , hashCode , isEmpty , keySet , put , putAll , remove , size , values
 

Method Detail

comparator


Comparator<? super K> comparator()
Returns the comparator used to order the keys in associated with this sorted map, or null if this map uses the natural ordering of its keys. if it uses its keys' natural ordering.

Returns:
the comparator used to order the keys in associated with this sorted map, or null if this map uses the natural ordering of its keys if it uses its keys' natural ordering.

subMap


SortedMap<K,V> subMap(K fromKey,
                      K toKey)
Returns a view of the portion of this sorted map whose keys range from fromKey , inclusive, to toKey , exclusive. (If fromKey and toKey are equal, the returned sorted map is empty.) The returned sorted map is backed by this sorted map, so changes in the returned sorted map are reflected in this sorted map, and vice-versa. The returned map Map supports all optional map operations that this sorted map supports.

The map returned map by this method will throw an IllegalArgumentException on an attempt if the user attempts to insert a key outside its the specified range.

Note: this method always returns a half-open range (which includes its low endpoint but not its high endpoint). If you need a closed range (which includes both endpoints), and the key type allows for calculation of the successor 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:

Map sub = m.subMap(low, high+"\0"); 
A similarly 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:
Map sub = m.subMap(low+"\0", high); 

Parameters:
fromKey - low endpoint (inclusive) of the keys in the returned map subMap.
toKey - high endpoint (exclusive) of the keys in the returned map subMap.
Returns:
a view of the portion of this map whose keys range from fromKey , inclusive, to toKey , exclusive a view of the specified range within this sorted map.
Throws:
ClassCastException - if fromKey and toKey cannot be compared to one another using this map's comparator (or, if the map has no comparator, using natural ordering). Implementations may, but are not required to, throw this exception if fromKey or toKey cannot be compared to keys currently in the map.
NullPointerException IllegalArgumentException - if fromKey is greater than toKey ; or if this map is itself a subMap, headMap, or tailMap, and fromKey or toKey is null and this map does not permit null keys are not within the specified range of the subMap, headMap, or tailMap.
IllegalArgumentException NullPointerException - if fromKey is greater than or toKey ; or if this map itself has a restricted range, and is fromKey null or and this sorted map does not tolerate toKey null lies outside the bounds of the range keys.

headMap


SortedMap<K,V> headMap(K toKey)
Returns a view of the portion of this map whose keys are strictly less than Returns a view of the portion of this sorted map whose keys are strictly less than toKey. The returned sorted map is backed by this sorted map, so changes in the returned sorted map are reflected in this sorted map, and vice-versa. The returned map supports all optional map operations that this sorted map supports.

The map returned by this method will throw an IllegalArgumentException if the user attempts to insert a key outside the specified range.

Note: this method always returns a view that does not contain its (high) endpoint. If you need a view that does contain this endpoint, and the key type allows for calculation of the successor a given key, merely request a headMap bounded by successor(highEndpoint). For example, suppose that suppose that toKey m . The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa. The returned map supports all optional map operations that this map supports.

The returned map will throw an is a map whose keys are strings. The following idiom obtains a view containing all of the key-value mappings in IllegalArgumentException m on an attempt to insert a key outside its range. whose keys are less than or equal to high :

Map head = m.headMap(high+"\0"); 

Parameters:
toKey - high endpoint (exclusive) of the keys in the returned map subMap.
Returns:
a view of the portion of this map whose keys are strictly less than toKey a view of the specified initial range of this sorted map.
Throws:
ClassCastException - if toKey is not compatible with this map's comparator (or, if the map has no comparator, if toKey does not implement Comparable Comparable ). Implementations may, but are not required to, throw this exception if toKey cannot be compared to keys currently in the map.
NullPointerException IllegalArgumentException - if - if this map is itself a subMap, headMap, or tailMap, and toKey is null and this map does not permit null keys is not within the specified range of the subMap, headMap, or tailMap.
IllegalArgumentException NullPointerException - if this map itself has a restricted range, and - if toKey lies outside the bounds of the range is null and this sorted map does not tolerate null keys.

tailMap


SortedMap<K,V> tailMap(K fromKey)
Returns a view of the portion of this sorted map whose keys are greater than or equal to fromKey . The returned sorted map is backed by this sorted map, so changes in the returned sorted map are reflected in this sorted map, and vice-versa. The returned map supports all optional map operations that this sorted map supports.

The map returned map by this method will throw an IllegalArgumentException on an attempt if the user attempts to insert a key outside its the specified range.

Note: this method always returns a view that contains its (low) endpoint. If you need a view that does not contain this endpoint, and the element type allows for calculation of the successor a given value, merely request a tailMap bounded by successor(lowEndpoint) . For example, suppose that 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 strictly greater than low :

Map tail = m.tailMap(low+"\0"); 

Parameters:
fromKey - low endpoint (inclusive) of the keys in the returned map tailMap.
Returns:
a view of the portion of this map whose keys are greater than or equal to fromKey a view of the specified final range of this sorted map.
Throws:
ClassCastException - if fromKey is not compatible with this map's comparator (or, if the map has no comparator, if fromKey does not implement Comparable Comparable ). Implementations may, but are not required to, throw this exception if fromKey cannot be compared to keys currently in the map.
NullPointerException IllegalArgumentException - if - if this map is itself a subMap, headMap, or tailMap, and fromKey is null and this map does not permit null keys is not within the specified range of the subMap, headMap, or tailMap.
IllegalArgumentException NullPointerException - if this map itself has a restricted range, and - if fromKey lies outside the bounds of the range is null and this sorted map does not tolerate null keys.

firstKey


K firstKey()
Returns the first (lowest) key currently in this sorted map.

Returns:
the first (lowest) key currently in this map sorted map.
Throws:
NoSuchElementException - if this map is empty empty.

lastKey


K lastKey()
Returns the last (highest) key currently in this sorted map.

Returns:
the last (highest) key currently in this map sorted map.
Throws:
NoSuchElementException - if this map is empty empty.

keySet

 
 Set< K> keySet () 
Returns a Set 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.

Specified by:
keySet in interface Map < K , V >
Returns:
a set view of the keys contained in this map, sorted in ascending order

values

 
 Collection< V> values () 
Returns a Collection view of the values contained in this map. The collection's iterator returns the values in ascending order of the corresponding keys. The collection is backed by the map, so changes to the map are reflected in the collection, and vice-versa. If the map is modified while an iteration over the collection is in progress (except through the iterator's own remove operation), the results of the iteration are undefined. The collection supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove , Collection.remove , removeAll , retainAll and clear operations. It does not support the add or addAll operations.

Specified by:
values in interface Map < K , V >
Returns:
a collection view of the values contained in this map, sorted in ascending key order

entrySet

 
 Set< Map.Entry< K, V>> entrySet () 
Returns a Set view of the mappings contained in this map. The set's iterator returns the entries in ascending key 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, or through the setValue operation on a map entry returned by the iterator) 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.

Specified by:
entrySet in interface Map < K , V >
Returns:
a set view of the mappings contained in this map, sorted in ascending key order