--- jsr166/src/main/java/util/NavigableMap.java 2005/05/03 02:52:07 1.7 +++ jsr166/src/main/java/util/NavigableMap.java 2005/05/16 06:27:52 1.8 @@ -54,105 +54,104 @@ package java.util; */ public interface NavigableMap extends SortedMap { /** - * Returns a key-value mapping associated with the least key - * greater than or equal to the given key, or null if there is - * no such entry. + * Returns a key-value mapping associated with the greatest key + * strictly less than the given key, or null if there is + * no such key. * - * @param key the key. - * @return an Entry associated with ceiling of given key, or null - * if there is no such Entry. - * @throws ClassCastException if key cannot be compared with the keys - * currently in the map. - * @throws NullPointerException if key is null and this map - * does not support null keys. + * @param key the key + * @return an entry with the greatest key less than key, + * or null if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys */ - Map.Entry ceilingEntry(K key); + Map.Entry lowerEntry(K key); /** - * Returns least key greater than or equal to the given key, or + * Returns the greatest key strictly less than the given key, or * null if there is no such key. * - * @param key the key. - * @return the ceiling key, or null - * if there is no such key. - * @throws ClassCastException if key cannot be compared with the keys - * currently in the map. - * @throws NullPointerException if key is null and this map - * does not support null keys. + * @param key the key + * @return the greatest key less than key, + * or null if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys */ - K ceilingKey(K key); + K lowerKey(K key); /** - * Returns a key-value mapping associated with the greatest - * key strictly less than the given key, or null if there is no - * such entry. + * Returns a key-value mapping associated with the greatest key + * less than or equal to the given key, or null if there + * is no such key. * - * @param key the key. - * @return an Entry with greatest key less than the given - * key, or null if there is no such Entry. - * @throws ClassCastException if key cannot be compared with the keys - * currently in the map. - * @throws NullPointerException if key is null and this map - * does not support null keys. + * @param key the key + * @return an entry with the greatest key less than or equal to + * key, or null if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys */ - Map.Entry lowerEntry(K key); + Map.Entry floorEntry(K key); /** - * Returns the greatest key strictly less than the given key, or - * null if there is no such key. + * Returns the greatest key less than or equal to the given key, + * or null if there is no such key. * - * @param key the key. - * @return the greatest key less than the given - * key, or null if there is no such key. - * @throws ClassCastException if key cannot be compared with the keys - * currently in the map. - * @throws NullPointerException if key is null and this map - * does not support null keys. + * @param key the key + * @return the greatest key less than or equal to key, + * or null if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys */ - K lowerKey(K key); + K floorKey(K key); /** - * Returns a key-value mapping associated with the greatest key - * less than or equal to the given key, or null if there - * is no such entry. + * Returns a key-value mapping associated with the least key + * greater than or equal to the given key, or null if + * there is no such key. * - * @param key the key. - * @return an Entry associated with floor of given key, or null - * if there is no such Entry. - * @throws ClassCastException if key cannot be compared with the keys - * currently in the map. - * @throws NullPointerException if key is null and this map - * does not support null keys. + * @param key the key + * @return an entry with the least key greater than or equal to + * key, or null if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys */ - Map.Entry floorEntry(K key); + Map.Entry ceilingEntry(K key); /** - * Returns the greatest key - * less than or equal to the given key, or null if there - * is no such key. + * Returns the least key greater than or equal to the given key, + * or null if there is no such key. * - * @param key the key. - * @return the floor of given key, or null if there is no - * such key. - * @throws ClassCastException if key cannot be compared with the keys - * currently in the map. - * @throws NullPointerException if key is null and this map - * does not support null keys. + * @param key the key + * @return the least key greater than or equal to key, + * or null if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys */ - K floorKey(K key); + K ceilingKey(K key); /** * Returns a key-value mapping associated with the least key * strictly greater than the given key, or null if there - * is no such entry. + * is no such key. * - * @param key the key. - * @return an Entry with least key greater than the given key, or - * null if there is no such Entry. - * @throws ClassCastException if key cannot be compared with the keys - * currently in the map. - * @throws NullPointerException if key is null and this map - * does not support null keys. + * @param key the key + * @return an entry with the least key greater than key, + * or null if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys */ Map.Entry higherEntry(K key); @@ -160,13 +159,13 @@ public interface NavigableMap exten * Returns the least key strictly greater than the given key, or * null if there is no such key. * - * @param key the key. - * @return the least key greater than the given key, or - * null if there is no such key. - * @throws ClassCastException if key cannot be compared with the keys - * currently in the map. - * @throws NullPointerException if key is null and this map - * does not support null keys. + * @param key the key + * @return the least key greater than key, + * or null if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys */ K higherKey(K key); @@ -174,8 +173,8 @@ public interface NavigableMap exten * Returns a key-value mapping associated with the least * key in this map, or null if the map is empty. * - * @return an Entry with least key, or null - * if the map is empty. + * @return an entry with the least key, + * or null if this map is empty */ Map.Entry firstEntry(); @@ -183,8 +182,8 @@ public interface NavigableMap exten * Returns a key-value mapping associated with the greatest * key in this map, or null if the map is empty. * - * @return an Entry with greatest key, or null - * if the map is empty. + * @return an entry with the greatest key, + * or null if this map is empty */ Map.Entry lastEntry(); @@ -192,8 +191,8 @@ public interface NavigableMap exten * Removes and returns a key-value mapping associated with * the least key in this map, or null if the map is empty. * - * @return the removed first entry of this map, or null - * if the map is empty. + * @return the removed first entry of this map, + * or null if this map is empty */ Map.Entry pollFirstEntry(); @@ -201,104 +200,132 @@ public interface NavigableMap exten * Removes and returns a key-value mapping associated with * the greatest key in this map, or null if the map is empty. * - * @return the removed last entry of this map, or null - * if the map is empty. + * @return the removed last entry of this map, + * or null if this map is empty */ Map.Entry pollLastEntry(); /** - * Returns a set view of the keys contained in this map, in - * descending 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), - * 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, + * Returns a {@link Set} view of the keys contained in this map. + * The set's iterator returns the keys in descending 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. * - * @return a set view of the keys contained in this map. + * @return a set view of the keys contained in this map, sorted in + * descending order */ Set descendingKeySet(); /** - * Returns a set view of the mappings contained in this map, in - * descending key order. Each element in the returned set is a - * Map.Entry. 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. + * Returns a {@link Set} view of the mappings contained in this map. + * The set's iterator returns the entries in descending 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. * - * @return a set view of the mappings contained in this map. + * @return a set view of the mappings contained in this map, + * sorted in descending key order */ Set> descendingEntrySet(); /** * Returns a view of the portion of this map whose keys range from * fromKey, inclusive, to toKey, exclusive. (If - * fromKey and toKey are equal, the returned - * navigable map is empty.) The returned navigable map is backed - * by this map, so changes in the returned navigable map are - * reflected in this map, and vice-versa. + * fromKey and toKey are equal, the returned map + * is empty.) 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. * - * @param fromKey low endpoint (inclusive) of the subMap. - * @param toKey high endpoint (exclusive) of the subMap. + *

The returned map will throw an IllegalArgumentException + * on an attempt to insert a key outside its range. * + * @param fromKey low endpoint (inclusive) of the keys in the returned map + * @param toKey high endpoint (exclusive) of the keys in the returned map * @return a view of the portion of this map whose keys range from - * fromKey, inclusive, to toKey, exclusive. - * - * @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). - * @throws IllegalArgumentException if fromKey is greater - * than toKey. - * @throws NullPointerException if fromKey or - * toKey is null and this map does not support - * null keys. + * fromKey, inclusive, to toKey, exclusive + * @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. + * @throws NullPointerException if fromKey or toKey + * is null and this map does not permit null keys + * @throws IllegalArgumentException if fromKey is greater than + * toKey; or if this map itself has a restricted + * range, and fromKey or toKey lies + * outside the bounds of the range */ NavigableMap navigableSubMap(K fromKey, K toKey); /** - * Returns a view of the portion of this map whose keys are strictly less - * than toKey. The returned navigable map is backed by this map, so - * changes in the returned navigable map are reflected in this map, and - * vice-versa. - * @param toKey high endpoint (exclusive) of the headMap. - * @return a view of the portion of this map whose keys are strictly - * less than toKey. + * Returns a view of the portion of this map whose keys are + * strictly less than toKey. 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 IllegalArgumentException + * on an attempt to insert a key outside its range. + * + * @param toKey high endpoint (exclusive) of the keys in the returned map + * @return a view of the portion of this map whose keys are strictly + * less than toKey * @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). - * @throws NullPointerException if toKey is null - * and this map does not support null keys. + * if toKey does not implement {@link Comparable}). + * Implementations may, but are not required to, throw this + * exception if toKey cannot be compared to keys + * currently in the map. + * @throws NullPointerException if toKey is null + * and this map does not permit null keys + * @throws IllegalArgumentException if this map itself has a + * restricted range, and toKey lies outside the + * bounds of the range */ NavigableMap navigableHeadMap(K toKey); /** * Returns a view of the portion of this map whose keys are - * greater than or equal to fromKey. The returned navigable - * map is backed by this map, so changes in the returned navigable - * map are reflected in this map, and vice-versa. - * @param fromKey low endpoint (inclusive) of the tailMap. + * greater than or equal to fromKey. 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 IllegalArgumentException + * on an attempt to insert a key outside its range. + * + * @param fromKey low endpoint (inclusive) of the keys in the returned map * @return a view of the portion of this map whose keys are greater - * than or equal to fromKey. + * than or equal to fromKey * @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). - * @throws NullPointerException if fromKey is null - * and this map does not support null keys. + * if fromKey does not implement {@link Comparable}). + * Implementations may, but are not required to, throw this + * exception if fromKey cannot be compared to keys + * currently in the map. + * @throws NullPointerException if fromKey is null + * and this map does not permit null keys + * @throws IllegalArgumentException if this map itself has a + * restricted range, and fromKey lies outside the + * bounds of the range */ - NavigableMap navigableTailMap(K fromKey); + NavigableMap navigableTailMap(K fromKey); }