/** ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*********************//******* Written by Doug Lea and Josh Bloch with assistance from members of JCP* JSR-166 Expert Group and released to the public domain, as explained at* http://creativecommons.org/publicdomain/zero/1.0/*/package java.util;/*** A {@link SortedMap} extended with navigation methods returning the* closest matches for given search targets. Methods* {@link #lowerEntry}, {@link #floorEntry}, {@link #ceilingEntry},* and {@link #higherEntry} return {@code Map.Entry} objects* associated with keys respectively less than, less than or equal,* greater than or equal, and greater than a given key, returning* {@code null} if there is no such key. Similarly, methods* {@link #lowerKey}, {@link #floorKey}, {@link #ceilingKey}, and* {@link #higherKey} return only the associated keys. All of these* methods are designed for locating, not traversing entries.** <p>A {@code NavigableMap} may be accessed and traversed in either* ascending or descending key order. The {@link #descendingMap}* method returns a view of the map with the senses of all relational* and directional methods inverted. The performance of ascending* operations and views is likely to be faster than that of descending* ones. Methods* {@link #subMap(Object, boolean, Object, boolean) subMap(K, boolean, K, boolean)},* {@link #headMap(Object, boolean) headMap(K, boolean)}, and* {@link #tailMap(Object, boolean) tailMap(K, boolean)}* differ from the like-named {@code SortedMap} methods in accepting* additional arguments describing whether lower and upper bounds are* inclusive versus exclusive. Submaps of any {@code NavigableMap}* must implement the {@code NavigableMap} interface.** <p>This interface additionally defines methods {@link #firstEntry},* {@link #pollFirstEntry}, {@link #lastEntry}, and* {@link #pollLastEntry} that return and/or remove the least and* greatest mappings, if any exist, else returning {@code null}.** <p>Implementations of entry-returning methods are expected to* return {@code Map.Entry} pairs representing snapshots of mappings* at the time they were produced, and thus generally do <em>not</em>* support the optional {@code Entry.setValue} method. Note however* that it is possible to change mappings in the associated map using* method {@code put}.** <p>Methods* {@link #subMap(Object, Object) subMap(K, K)},* {@link #headMap(Object) headMap(K)}, and* {@link #tailMap(Object) tailMap(K)}* are specified to return {@code SortedMap} to allow existing* implementations of {@code SortedMap} to be compatibly retrofitted to* implement {@code NavigableMap}, but extensions and implementations* of this interface are encouraged to override these methods to return* {@code NavigableMap}. Similarly,* {@link #keySet()} can be overridden to return {@link NavigableSet}.** <p>This interface is a member of the* <a href="{@docRoot}/java.base/java/util/package-summary.html#CollectionsFramework">* Java Collections Framework</a>.** @author Doug Lea* @author Josh Bloch* @param <K> the type of keys maintained by this map* @param <V> the type of mapped values* @since 1.6*/public interface NavigableMap<K,V> extends SortedMap<K,V> {/*** Returns a key-value mapping associated with the greatest key* strictly less than the given key, or {@code null} if there is* no such key.** @param key the key* @return an entry with the greatest key less than {@code key},* or {@code 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<K,V> lowerEntry(K key);/*** Returns the greatest key strictly less than the given key, or* {@code null} if there is no such key.** @param key the key* @return the greatest key less than {@code key},* or {@code 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);/*** Returns a key-value mapping associated with the greatest key* less than or equal to the given key, or {@code null} if there* is no such key.** @param key the key* @return an entry with the greatest key less than or equal to* {@code key}, or {@code 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<K,V> floorEntry(K key);/*** Returns the greatest key less than or equal to the given key,* or {@code null} if there is no such key.** @param key the key* @return the greatest key less than or equal to {@code key},* or {@code 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);/*** Returns a key-value mapping associated with the least key* greater than or equal to the given key, or {@code null} if* there is no such key.** @param key the key* @return an entry with the least key greater than or equal to* {@code key}, or {@code 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<K,V> ceilingEntry(K key);/*** Returns the least key greater than or equal to the given key,* or {@code null} if there is no such key.** @param key the key* @return the least key greater than or equal to {@code key},* or {@code 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);/*** Returns a key-value mapping associated with the least key* strictly greater than the given key, or {@code null} if there* is no such key.** @param key the key* @return an entry with the least key greater than {@code key},* or {@code 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<K,V> higherEntry(K key);/*** Returns the least key strictly greater than the given key, or* {@code null} if there is no such key.** @param key the key* @return the least key greater than {@code key},* or {@code 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);/*** Returns a key-value mapping associated with the least* key in this map, or {@code null} if the map is empty.** @return an entry with the least key,* or {@code null} if this map is empty*/Map.Entry<K,V> firstEntry();/*** Returns a key-value mapping associated with the greatest* key in this map, or {@code null} if the map is empty.** @return an entry with the greatest key,* or {@code null} if this map is empty*/Map.Entry<K,V> lastEntry();/*** Removes and returns a key-value mapping associated with* the least key in this map, or {@code null} if the map is empty.** @return the removed first entry of this map,* or {@code null} if this map is empty*/Map.Entry<K,V> pollFirstEntry();/*** Removes and returns a key-value mapping associated with* the greatest key in this map, or {@code null} if the map is empty.** @return the removed last entry of this map,* or {@code null} if this map is empty*/Map.Entry<K,V> pollLastEntry();/*** Returns a reverse order view of the mappings contained in this map.* The descending map is backed by this map, so changes to the map are* reflected in the descending map, and vice-versa. If either map is* modified while an iteration over a collection view of either map* is in progress (except through the iterator's own {@code remove}* operation), the results of the iteration are undefined.** <p>The returned map has an ordering equivalent to* {@link Collections#reverseOrder(Comparator) Collections.reverseOrder}{@code (comparator())}.* The expression {@code m.descendingMap().descendingMap()} returns a* view of {@code m} essentially equivalent to {@code m}.** @return a reverse order view of this map*/NavigableMap<K,V> descendingMap();/*** Returns a {@link NavigableSet} 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 {@code* remove} operation), the results of the iteration are undefined. The* set supports element removal, which removes the corresponding mapping* from the map, via the {@code Iterator.remove}, {@code Set.remove},* {@code removeAll}, {@code retainAll}, and {@code clear} operations.* It does not support the {@code add} or {@code addAll} operations.** @return a navigable set view of the keys in this map*/NavigableSet<K> navigableKeySet();/*** Returns a reverse order {@link NavigableSet} 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 {@code* remove} operation), the results of the iteration are undefined. The* set supports element removal, which removes the corresponding mapping* from the map, via the {@code Iterator.remove}, {@code Set.remove},* {@code removeAll}, {@code retainAll}, and {@code clear} operations.* It does not support the {@code add} or {@code addAll} operations.** @return a reverse order navigable set view of the keys in this map*/NavigableSet<K> descendingKeySet();/*** Returns a view of the portion of this map whose keys range from* {@code fromKey} to {@code toKey}. If {@code fromKey} and* {@code toKey} are equal, the returned map is empty unless* {@code fromInclusive} and {@code toInclusive} are both true. 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.** <p>The returned map will throw an {@code IllegalArgumentException}* on an attempt to insert a key outside of its range, or to construct a* submap either of whose endpoints lie outside its range.** @param fromKey low endpoint of the keys in the returned map* @param fromInclusive {@code true} if the low endpoint* is to be included in the returned view* @param toKey high endpoint of the keys in the returned map* @param toInclusive {@code true} if the high endpoint* is to be included in the returned view* @return a view of the portion of this map whose keys range from* {@code fromKey} to {@code toKey}* @throws ClassCastException if {@code fromKey} and {@code 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 {@code fromKey} or {@code toKey}* cannot be compared to keys currently in the map.* @throws NullPointerException if {@code fromKey} or {@code toKey}* is null and this map does not permit null keys* @throws IllegalArgumentException if {@code fromKey} is greater than* {@code toKey}; or if this map itself has a restricted* range, and {@code fromKey} or {@code toKey} lies* outside the bounds of the range*/NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive,K toKey, boolean toInclusive);/*** Returns a view of the portion of this map whose keys are less than (or* equal to, if {@code inclusive} is true) {@code 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.** <p>The returned map will throw an {@code IllegalArgumentException}* on an attempt to insert a key outside its range.** @param toKey high endpoint of the keys in the returned map* @param inclusive {@code true} if the high endpoint* is to be included in the returned view* @return a view of the portion of this map whose keys are less than* (or equal to, if {@code inclusive} is true) {@code toKey}* @throws ClassCastException if {@code toKey} is not compatible* with this map's comparator (or, if the map has no comparator,* if {@code toKey} does not implement {@link Comparable}).* Implementations may, but are not required to, throw this* exception if {@code toKey} cannot be compared to keys* currently in the map.* @throws NullPointerException if {@code toKey} is null* and this map does not permit null keys* @throws IllegalArgumentException if this map itself has a* restricted range, and {@code toKey} lies outside the* bounds of the range*/NavigableMap<K,V> headMap(K toKey, boolean inclusive);/*** Returns a view of the portion of this map whose keys are greater than (or* equal to, if {@code inclusive} is true) {@code 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.** <p>The returned map will throw an {@code IllegalArgumentException}* on an attempt to insert a key outside its range.** @param fromKey low endpoint of the keys in the returned map* @param inclusive {@code true} if the low endpoint* is to be included in the returned view* @return a view of the portion of this map whose keys are greater than* (or equal to, if {@code inclusive} is true) {@code fromKey}* @throws ClassCastException if {@code fromKey} is not compatible* with this map's comparator (or, if the map has no comparator,* if {@code fromKey} does not implement {@link Comparable}).* Implementations may, but are not required to, throw this* exception if {@code fromKey} cannot be compared to keys* currently in the map.* @throws NullPointerException if {@code fromKey} is null* and this map does not permit null keys* @throws IllegalArgumentException if this map itself has a* restricted range, and {@code fromKey} lies outside the* bounds of the range*/NavigableMap<K,V> tailMap(K fromKey, boolean inclusive);/*** {@inheritDoc}** <p>Equivalent to {@code subMap(fromKey, true, toKey, false)}.** @throws ClassCastException {@inheritDoc}* @throws NullPointerException {@inheritDoc}* @throws IllegalArgumentException {@inheritDoc}*/SortedMap<K,V> subMap(K fromKey, K toKey);/*** {@inheritDoc}** <p>Equivalent to {@code headMap(toKey, false)}.** @throws ClassCastException {@inheritDoc}* @throws NullPointerException {@inheritDoc}* @throws IllegalArgumentException {@inheritDoc}*/SortedMap<K,V> headMap(K toKey);/*** {@inheritDoc}** <p>Equivalent to {@code tailMap(fromKey, true)}.** @throws ClassCastException {@inheritDoc}* @throws NullPointerException {@inheritDoc}* @throws IllegalArgumentException {@inheritDoc}*/SortedMap<K,V> tailMap(K fromKey);}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。