JavaTM 2 Platform
Standard Ed. 6

java.util
類別 TreeMap<K,V>

java.lang.Object
  繼承者 java.util.AbstractMap<K,V>
      繼承者 java.util.TreeMap<K,V>
型別參數:
K - 此映射維護的鍵的型別
V - 映射值的型別
所有已實作的介面:
Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

public class TreeMap<K,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, Serializable

基於紅黑階層樹(Red-Black tree)的 NavigableMap 實作。該映射根據其鍵的自然順序進行排序,或者根據創建映射時提供的 Comparator 進行排序,具體取決於使用的建構子。

此實作為 containsKeygetputremove 操作提供受保證的 log(n) 時間開銷。這些演算法是 Cormen、Leiserson 和 Rivest 的 Introduction to Algorithms 中的演算法的改編。

注意,如果要正確實作 Map 介面,則有序映射所保持的順序(無論是否明確提供了比較器)都必須與 equals 一致。(關於與 equals 一致 的精確定義,請參閱 ComparableComparator)。這是因為 Map 介面是按照 equals 操作定義的,但有序映射使用它的 compareTo(或 compare)方法對所有鍵進行比較,因此從有序映射的觀點來看,此方法認為相等的兩個鍵就是相等的。即使排序與 equals 不一致,有序映射的行為仍然 定義良好的,只不過沒有遵守 Map 介面的常規協定。

注意,此實作不是同步的。如果多個執行緒同時存取一個映射,並且其中至少一個執行緒從結構上修改了該映射,則其必須 外部同步。(結構上的修改是指添加或刪除一個或多個映射關係的操作;僅改變與現有鍵關聯的值不是結構上的修改。)這一般是通過對自然封裝該映射的物件執行同步操作來完成的。如果不存在這樣的物件,則應該使用 Collections.synchronizedSortedMap 方法來「包裹」該映射。最好在創建時完成這一操作,以防止對映射進行意外的不同步存取,如下所示:

   SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));

collection(由此類別所有的「collection 視圖方法」返回)的 iterator 方法返回的迭代器都是快速失敗 的:在迭代器創建之後,如果從結構上對映射進行修改,除非通過迭代器自身的 remove 方法,否則在其他任何時間以任何方式進行修改都將導致迭代器拋出 ConcurrentModificationException。因此,對於共時的修改,迭代器很快就完全失敗,而不會冒著在將來不確定的時間發生不確定行為的風險。

注意,迭代器的快速失敗行為無法得到保證,一般來說,當存在不同步的共時修改時,不可能作出任何肯定的保證。快速失敗迭代器盡最大努力拋出 ConcurrentModificationException。因此,編寫依賴於此異常的程序的做法是錯誤的,正確做法是:迭代器的快速失敗行為應該僅用於檢測 bug。

此類別及其視圖中的方法返回的所有 Map.Entry 對都表示產生它們時的映射關係的快照。它們 支持 Entry.setValue 方法。(不過要注意的是,使用 put 更改相關映射中的映射關係是有可能的。)

此類別是 Java Collections Framework 的成員。

從以下版本開始:
1.2
另請參見:
Map, HashMap, Hashtable, Comparable, Comparator, Collection, 序列化表格

巢狀類別摘要
 
從類別 java.util.AbstractMap 繼承的巢狀類別/介面
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
 
建構子摘要
TreeMap()
          使用鍵的自然順序建構一個新的、空的階層樹映射。
TreeMap(Comparator<? super K> comparator)
          建構一個新的、空的階層樹映射,該映射根據給定比較器進行排序。
TreeMap(Map<? extends K,? extends V> m)
          建構一個與給定映射具有相同映射關係的新的階層樹映射,該映射根據其鍵的自然順序 進行排序。
TreeMap(SortedMap<K,? extends V> m)
          建構一個與指定有序映射具有相同映射關係和相同排序順序的新的階層樹映射。
 
方法摘要
 Map.Entry<K,V> ceilingEntry(K key)
          返回一個鍵-值映射關係,它與大於等於給定鍵的最小鍵關聯;如果不存在這樣的鍵,則返回 null
 K ceilingKey(K key)
          返回大於等於給定鍵的最小鍵;如果不存在這樣的鍵,則返回 null
 void clear()
          從此映射中移除所有映射關係。
 Object clone()
          返回此 TreeMap 實例的淺表副本。
 Comparator<? super K> comparator()
          返回對此映射中的鍵進行排序的比較器;如果此映射使用鍵的自然順序,則返回 null
 boolean containsKey(Object key)
          如果此映射包含指定鍵的映射關係,則返回 true
 boolean containsValue(Object value)
          如果此映射為指定值映射一個或多個鍵,則返回 true
 NavigableSet<K> descendingKeySet()
          返回此映射中所包含鍵的逆序 NavigableSet 視圖。
 NavigableMap<K,V> descendingMap()
          返回此映射中所包含映射關係的逆序視圖。
 Set<Map.Entry<K,V>> entrySet()
          返回此映射中包含的映射關係的 Set 視圖。
 Map.Entry<K,V> firstEntry()
          返回一個與此映射中的最小鍵關聯的鍵-值映射關係;如果映射為空,則返回 null
 K firstKey()
          返回此映射中當前第一個(最低)鍵。
 Map.Entry<K,V> floorEntry(K key)
          返回一個鍵-值映射關係,它與小於等於給定鍵的最大鍵關聯;如果不存在這樣的鍵,則返回 null
 K floorKey(K key)
          返回小於等於給定鍵的最大鍵;如果不存在這樣的鍵,則返回 null
 V get(Object key)
          返回指定鍵所映射的值,如果對於該鍵而言,此映射不包含任何映射關係,則返回 null
 SortedMap<K,V> headMap(K toKey)
          返回此映射的部分視圖,其鍵值嚴格小於 toKey
 NavigableMap<K,V> headMap(K toKey, boolean inclusive)
          返回此映射的部分視圖,其鍵小於(或等於,如果 inclusive 為 true)toKey
 Map.Entry<K,V> higherEntry(K key)
          返回一個鍵-值映射關係,它與嚴格大於給定鍵的最小鍵關聯;如果不存在這樣的鍵,則返回 null
 K higherKey(K key)
          返回嚴格大於給定鍵的最小鍵;如果不存在這樣的鍵,則返回 null
 Set<K> keySet()
          返回此映射包含的鍵的 Set 視圖。
 Map.Entry<K,V> lastEntry()
          返回與此映射中的最大鍵關聯的鍵-值映射關係;如果映射為空,則返回 null
 K lastKey()
          返回映射中當前最後一個(最高)鍵。
 Map.Entry<K,V> lowerEntry(K key)
          返回一個鍵-值映射關係,它與嚴格小於給定鍵的最大鍵關聯;如果不存在這樣的鍵,則返回 null
 K lowerKey(K key)
          返回嚴格小於給定鍵的最大鍵;如果不存在這樣的鍵,則返回 null
 NavigableSet<K> navigableKeySet()
          返回此映射中所包含鍵的 NavigableSet 視圖。
 Map.Entry<K,V> pollFirstEntry()
          移除並返回與此映射中的最小鍵關聯的鍵-值映射關係;如果映射為空,則返回 null
 Map.Entry<K,V> pollLastEntry()
          移除並返回與此映射中的最大鍵關聯的鍵-值映射關係;如果映射為空,則返回 null
 V put(K key, V value)
          將指定值與此映射中的指定鍵進行關聯。
 void putAll(Map<? extends K,? extends V> map)
          將指定映射中的所有映射關係複製到此映射中。
 V remove(Object key)
          如果此 TreeMap 中存在該鍵的映射關係,則將其刪除。
 int size()
          返回此映射中的鍵-值映射關係數。
 NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
          返回此映射的部分視圖,其鍵的範圍從 fromKeytoKey
 SortedMap<K,V> subMap(K fromKey, K toKey)
          返回此映射的部分視圖,其鍵值的範圍從 fromKey(包括)到 toKey(不包括)。
 SortedMap<K,V> tailMap(K fromKey)
          返回此映射的部分視圖,其鍵大於等於 fromKey
 NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
          返回此映射的部分視圖,其鍵大於(或等於,如果 inclusive 為 true)fromKey
 Collection<V> values()
          返回此映射包含的值的 Collection 視圖。
 
從類別 java.util.AbstractMap 繼承的方法
equals, hashCode, isEmpty, toString
 
從類別 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 
從介面 java.util.Map 繼承的方法
equals, hashCode, isEmpty
 

建構子詳細資訊

TreeMap

public TreeMap()
使用鍵的自然順序建構一個新的、空的階層樹映射。插入該映射的所有鍵都必須實作 Comparable 介面。另外,所有這些鍵都必須是可互相比較的:對於映射中的任意兩個鍵 k1k2,執行 k1.compareTo(k2) 都不得拋出 ClassCastException。如果使用者試圖將違反此約束的鍵添加到映射中(例如,使用者試圖將字元串鍵添加到鍵為整數的映射中),則 put(Object key, Object value) 調用將拋出 ClassCastException


TreeMap

public TreeMap(Comparator<? super K> comparator)
建構一個新的、空的階層樹映射,該映射根據給定比較器進行排序。插入該映射的所有鍵都必須由給定比較器進行相互比較:對於映射中的任意兩個鍵 k1k2,執行 comparator.compare(k1, k2) 都不得拋出 ClassCastException。如果使用者試圖將違反此約束的鍵放入映射中,則 put(Object key, Object value) 調用將拋出 ClassCastException

參數:
comparator - 將用來對此映射進行排序的比較器。如果該參數為 null,則將使用鍵的自然順序

TreeMap

public TreeMap(Map<? extends K,? extends V> m)
建構一個與給定映射具有相同映射關係的新的階層樹映射,該映射根據其鍵的自然順序 進行排序。插入此新映射的所有鍵都必須實作 Comparable 介面。另外,所有這些鍵都必須是可互相比較的:對於映射中的任意兩個鍵 k1k2,執行 k1.compareTo(k2) 都不得拋出 ClassCastException。此方法的運行時間為 n*log(n)。

參數:
m - 其映射關係將存放在此映射中的映射
拋出:
ClassCastException - 如果 m 中的鍵不是 Comparable,或者是不可相互比較的
NullPointerException - 如果指定映射為 null

TreeMap

public TreeMap(SortedMap<K,? extends V> m)
建構一個與指定有序映射具有相同映射關係和相同排序順序的新的階層樹映射。此方法是以線性時間運行的。

參數:
m - 有序映射,其映射關係將存放在此映射中,並且其比較器將用來對此映射進行排序
拋出:
NullPointerException - 如果指定映射為 null
方法詳細資訊

size

public int size()
返回此映射中的鍵-值映射關係數。

指定者:
介面 Map<K,V> 中的 size
覆寫:
類別 AbstractMap<K,V> 中的 size
返回:
此映射中的鍵-值映射關係數

containsKey

public boolean containsKey(Object key)
如果此映射包含指定鍵的映射關係,則返回 true

指定者:
介面 Map<K,V> 中的 containsKey
覆寫:
類別 AbstractMap<K,V> 中的 containsKey
參數:
key - 測試是否存在於此映射中的鍵
返回:
如果此映射包含指定鍵的映射關係,則返回 true
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null 並且此映射使用自然順序,或者其比較器不允許使用 null 鍵

containsValue

public boolean containsValue(Object value)
如果此映射為指定值映射一個或多個鍵,則返回 true。更確切地講,當且僅當此映射包含至少一個到值 v 的映射關係,並且該值滿足 (value==null ? v==null :value.equals(v)) 時,返回 true。對於大部分實作而言,此操作需要的時間可能與映射的大小呈線性關係。

指定者:
介面 Map<K,V> 中的 containsValue
覆寫:
類別 AbstractMap<K,V> 中的 containsValue
參數:
value - 將測試其是否存在於此映射中的值
返回:
如果存在到 value 的映射關係,則返回 true;否則返回 false
從以下版本開始:
1.2

get

public V get(Object key)
返回指定鍵所映射的值,如果對於該鍵而言,此映射不包含任何映射關係,則返回 null

更確切地講,如果此映射包含從鍵 k 到值 v 的映射關係,根據該映射的排序 key 比較起來等於 k,那麼此方法將返回 v;否則返回 null。(最多只能有一個這樣的映射關係。)

返回 null 值並不一定 表明映射不包含該鍵的映射關係;也可能此映射將該鍵顯式地映射為 null。可以使用 containsKey 操作來區分這兩種情況。

指定者:
介面 Map<K,V> 中的 get
覆寫:
類別 AbstractMap<K,V> 中的 get
參數:
key - 要返回其關聯值的鍵
返回:
指定鍵所映射的值;如果此映射不包含該鍵的映射關係,則返回 null
拋出:
ClassCastException - 如果指定鍵不能與在映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null 並且此映射使用自然順序,或者其比較器不允許使用 null 鍵

comparator

public Comparator<? super K> comparator()
從介面 SortedMap 複製的描述
返回對此映射中的鍵進行排序的比較器;如果此映射使用鍵的自然順序,則返回 null

指定者:
介面 SortedMap<K,V> 中的 comparator
返回:
用來對此映射中的鍵進行排序的比較器;如果此映射使用鍵的自然順序,則返回 null

firstKey

public K firstKey()
從介面 SortedMap 複製的描述
返回此映射中當前第一個(最低)鍵。

指定者:
介面 SortedMap<K,V> 中的 firstKey
返回:
此映射中當前第一個(最低)鍵
拋出:
NoSuchElementException - 如果此映射為空

lastKey

public K lastKey()
從介面 SortedMap 複製的描述
返回映射中當前最後一個(最高)鍵。

指定者:
介面 SortedMap<K,V> 中的 lastKey
返回:
此映射中當前最後一個(最高)鍵
拋出:
NoSuchElementException - 如果此映射為空

putAll

public void putAll(Map<? extends K,? extends V> map)
將指定映射中的所有映射關係複製到此映射中。這些映射關係將替換此映射所有當前為指定映射的所有鍵所包含的映射關係。

指定者:
介面 Map<K,V> 中的 putAll
覆寫:
類別 AbstractMap<K,V> 中的 putAll
參數:
map - 將存儲在此映射中的映射關係
拋出:
ClassCastException - 如果指定映射中的鍵或值的類別不允許將鍵或值存儲在此映射中
NullPointerException - 如果指定映射為 null,或者指定映射包含 null 鍵,但此映射不允許使用 null 鍵

put

public V put(K key,
             V value)
將指定值與此映射中的指定鍵進行關聯。如果該映射以前包含此鍵的映射關係,那麼將替換舊值。

指定者:
介面 Map<K,V> 中的 put
覆寫:
類別 AbstractMap<K,V> 中的 put
參數:
key - 要與指定值關聯的鍵
value - 要與指定鍵關聯的值
返回:
key 關聯的先前值;如果沒有針對 key 的映射關係,則返回 null。(返回 null 還可能表示該映射以前將 nullkey 關聯。)
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null 並且此映射使用自然順序,或者其比較器不允許使用 null 鍵

remove

public V remove(Object key)
如果此 TreeMap 中存在該鍵的映射關係,則將其刪除。

指定者:
介面 Map<K,V> 中的 remove
覆寫:
類別 AbstractMap<K,V> 中的 remove
參數:
key - 將為其移除映射關係的鍵
返回:
返回與 key 關聯的先前值,如果沒有針對 key 的映射關係,則返回 null。(返回 null 還可能表示該映射以前將 nullkey 關聯。)
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null 並且此映射使用自然順序,或者其比較器不允許使用 null 鍵

clear

public void clear()
從此映射中移除所有映射關係。在此調用返回之後,映射將為空。

指定者:
介面 Map<K,V> 中的 clear
覆寫:
類別 AbstractMap<K,V> 中的 clear

clone

public Object clone()
返回此 TreeMap 實例的淺表副本。(鍵和值本身不被複製。)

覆寫:
類別 AbstractMap<K,V> 中的 clone
返回:
此映射的淺表副本
另請參見:
Cloneable

firstEntry

public Map.Entry<K,V> firstEntry()
從介面 NavigableMap 複製的描述
返回一個與此映射中的最小鍵關聯的鍵-值映射關係;如果映射為空,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 firstEntry
返回:
帶有最小鍵的條目;如果此映射為空,則返回 null
從以下版本開始:
1.6

lastEntry

public Map.Entry<K,V> lastEntry()
從介面 NavigableMap 複製的描述
返回與此映射中的最大鍵關聯的鍵-值映射關係;如果映射為空,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 lastEntry
返回:
帶有最大鍵的條目;如果此映射為空,則返回 null
從以下版本開始:
1.6

pollFirstEntry

public Map.Entry<K,V> pollFirstEntry()
從介面 NavigableMap 複製的描述
移除並返回與此映射中的最小鍵關聯的鍵-值映射關係;如果映射為空,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 pollFirstEntry
返回:
此映射中被移除的第一個條目;如果此映射為空,則返回 null
從以下版本開始:
1.6

pollLastEntry

public Map.Entry<K,V> pollLastEntry()
從介面 NavigableMap 複製的描述
移除並返回與此映射中的最大鍵關聯的鍵-值映射關係;如果映射為空,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 pollLastEntry
返回:
此映射中被移除的最後一個條目;如果此映射為空,則返回 null
從以下版本開始:
1.6

lowerEntry

public Map.Entry<K,V> lowerEntry(K key)
從介面 NavigableMap 複製的描述
返回一個鍵-值映射關係,它與嚴格小於給定鍵的最大鍵關聯;如果不存在這樣的鍵,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 lowerEntry
參數:
key - 鍵
返回:
最大鍵小於 key 的條目;如果不存在這樣的鍵,則返回 null
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
從以下版本開始:
1.6

lowerKey

public K lowerKey(K key)
從介面 NavigableMap 複製的描述
返回嚴格小於給定鍵的最大鍵;如果不存在這樣的鍵,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 lowerKey
參數:
key - 鍵
返回:
小於 key 的最大鍵;如果不存在這樣的鍵,則返回 null
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
從以下版本開始:
1.6

floorEntry

public Map.Entry<K,V> floorEntry(K key)
從介面 NavigableMap 複製的描述
返回一個鍵-值映射關係,它與小於等於給定鍵的最大鍵關聯;如果不存在這樣的鍵,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 floorEntry
參數:
key - 鍵
返回:
最大鍵小於等於 key 的條目;如果不存在這樣的鍵,則返回 null
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
從以下版本開始:
1.6

floorKey

public K floorKey(K key)
從介面 NavigableMap 複製的描述
返回小於等於給定鍵的最大鍵;如果不存在這樣的鍵,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 floorKey
參數:
key - 鍵
返回:
小於等於 key 的最大鍵;如果不存在這樣的鍵,則返回 null
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
從以下版本開始:
1.6

ceilingEntry

public Map.Entry<K,V> ceilingEntry(K key)
從介面 NavigableMap 複製的描述
返回一個鍵-值映射關係,它與大於等於給定鍵的最小鍵關聯;如果不存在這樣的鍵,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 ceilingEntry
參數:
key - 鍵
返回:
最小鍵大於等於 key 的條目;如果不存在這樣的鍵,則返回 null
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
從以下版本開始:
1.6

ceilingKey

public K ceilingKey(K key)
從介面 NavigableMap 複製的描述
返回大於等於給定鍵的最小鍵;如果不存在這樣的鍵,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 ceilingKey
參數:
key - 鍵
返回:
大於等於 key 的最小鍵;如果不存在這樣的鍵,則返回 null
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
從以下版本開始:
1.6

higherEntry

public Map.Entry<K,V> higherEntry(K key)
從介面 NavigableMap 複製的描述
返回一個鍵-值映射關係,它與嚴格大於給定鍵的最小鍵關聯;如果不存在這樣的鍵,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 higherEntry
參數:
key - 鍵
返回:
最小鍵大於 key 的條目;如果不存在這樣的鍵,則返回 null
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
從以下版本開始:
1.6

higherKey

public K higherKey(K key)
從介面 NavigableMap 複製的描述
返回嚴格大於給定鍵的最小鍵;如果不存在這樣的鍵,則返回 null

指定者:
介面 NavigableMap<K,V> 中的 higherKey
參數:
key - 鍵
返回:
大於 key 的最小鍵;如果不存在這樣的鍵,則返回 null
拋出:
ClassCastException - 如果指定鍵不能與映射中的當前鍵進行比較
NullPointerException - 如果指定鍵為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
從以下版本開始:
1.6

keySet

public Set<K> keySet()
返回此映射包含的鍵的 Set 視圖。set 的迭代器將按升序返回這些鍵。該 set 受映射支持,所以對映射的更改可在此 set 中反映出來,反之亦然。如果對該 set 進行迭代的同時修改了映射(通過迭代器自己的 remove 操作除外),則迭代結果是不確定的。此 set 支持元素移除,通過 Iterator.removeSet.removeremoveAllretainAllclear 操作,可從映射中移除相應的映射關係。它不支持 addaddAll 操作。

指定者:
介面 Map<K,V> 中的 keySet
指定者:
介面 SortedMap<K,V> 中的 keySet
覆寫:
類別 AbstractMap<K,V> 中的 keySet
返回:
此映射中包含的鍵的 set 視圖

navigableKeySet

public NavigableSet<K> navigableKeySet()
從介面 NavigableMap 複製的描述
返回此映射中所包含鍵的 NavigableSet 視圖。set 的迭代器按升序返回鍵。set 受映射支持,因此對映射的更改將反映在 set 中,反之亦然。如果正在對 set 進行迭代的同時修改了映射(通過迭代器自己的 remove 操作除外),則迭代結果是不確定的。set 支持元素移除,即通過 Iterator.removeSet.removeremoveAllretainAllclear 操作從映射中移除相應的映射關係。它不支持 addaddAll 操作。

指定者:
介面 NavigableMap<K,V> 中的 navigableKeySet
返回:
此映射中鍵的可導航 set 視圖
從以下版本開始:
1.6

descendingKeySet

public NavigableSet<K> descendingKeySet()
從介面 NavigableMap 複製的描述
返回此映射中所包含鍵的逆序 NavigableSet 視圖。set 的迭代器按降序返回鍵。set 受映射支持,因此對映射的更改將反映在 set 中,反之亦然。如果正在對 set 進行迭代的同時修改了映射(通過迭代器自己的 remove 操作除外),則迭代結果是不確定的。set 支持元素移除,即通過 Iterator.removeSet.removeremoveAllretainAllclear 操作從映射中移除相應的映射關係。它不支持 addaddAll 操作。

指定者:
介面 NavigableMap<K,V> 中的 descendingKeySet
返回:
此映射中鍵的逆序可導航 set 視圖
從以下版本開始:
1.6

values

public Collection<V> values()
返回此映射包含的值的 Collection 視圖。該 collection 的迭代器將按相關鍵的升序返回這些值。該 collection 受映射支持,所以對映射的更改可在此 collection 中反映出來,反之亦然。如果對該 collection 進行迭代的同時修改了映射(通過迭代器自己的 remove 操作除外),則迭代結果是不確定的。該 collection 支持元素的移除,通過 Iterator.removeCollection.removeremoveAllretainAllclear 操作,可從映射中移除相應的映射關係。它不支持 addaddAll 操作。

指定者:
介面 Map<K,V> 中的 values
指定者:
介面 SortedMap<K,V> 中的 values
覆寫:
類別 AbstractMap<K,V> 中的 values
返回:
此映射中包含的值的 collection 視圖

entrySet

public Set<Map.Entry<K,V>> entrySet()
返回此映射中包含的映射關係的 Set 視圖。該 set 的迭代器將按升序返回這些條目。該 set 受映射支持,所以對映射的更改可在此 set 中反映出來,反之亦然。如果對該 set 進行迭代的同時修改了映射(通過迭代器自己的 remove 操作,或者通過在迭代器返回的映射條目上執行 setValue 操作除外),則迭代結果是不確定的。此 set 支持元素移除,通過 Iterator.removeSet.removeremoveAllretainAllclear 操作,可從映射中移除相應的映射關係。它不支持 addaddAll 操作。

指定者:
介面 Map<K,V> 中的 entrySet
指定者:
介面 SortedMap<K,V> 中的 entrySet
指定者:
類別 AbstractMap<K,V> 中的 entrySet
返回:
此映射中包含的映射關係的 set 視圖

descendingMap

public NavigableMap<K,V> descendingMap()
從介面 NavigableMap 複製的描述
返回此映射中所包含映射關係的逆序視圖。降序映射受此映射的支持,因此對映射的更改將反映在降序映射中,反之亦然。如果在對任一映射的 collection 視圖進行迭代的同時修改了任一映射(通過迭代器自己的 remove 操作除外),則迭代結果是不確定的。

返回映射的順序等於 Collections.reverseOrder(comparator())。表達式 m.descendingMap().descendingMap() 返回的 m 視圖基本等於 m

指定者:
介面 NavigableMap<K,V> 中的 descendingMap
返回:
此映射的逆序視圖
從以下版本開始:
1.6

subMap

public NavigableMap<K,V> subMap(K fromKey,
                                boolean fromInclusive,
                                K toKey,
                                boolean toInclusive)
從介面 NavigableMap 複製的描述
返回此映射的部分視圖,其鍵的範圍從 fromKeytoKey。如果 fromKeytoKey 相等,則返回的映射為空,除非 fromExclusivetoExclusive 都為 true。返回的映射受此映射支持,因此返回映射中的更改將反映在此映射中,反之亦然。返回的映射支持此映射支持的所有可選映射操作。

如果試圖在返回映射的範圍之外插入一個鍵,或者建構一個任一端點位於其範圍之外的子映射,則返回的映射將拋出 IllegalArgumentException

指定者:
介面 NavigableMap<K,V> 中的 subMap
參數:
fromKey - 返回映射中鍵的低端點
fromInclusive - 如果低端點要包含在返回的視圖中,則為 true
toKey - 返回映射中鍵的高端點
toInclusive - 如果高端點要包含在返回的視圖中,則為 true
返回:
此映射的部分視圖,其鍵範圍從 fromKeytoKey
拋出:
ClassCastException - 如果不能使用此映射的比較器(如果映射沒有比較器,則使用自然順序)比較 fromKeytoKey。如果 fromKeytoKey 不能與映射中當前鍵進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 fromKeytoKey 為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
IllegalArgumentException - 如果 fromKey 大於 toKey;如果此映射本身有範圍限制,並且 fromKeytoKey 位於範圍的邊界之外
從以下版本開始:
1.6

headMap

public NavigableMap<K,V> headMap(K toKey,
                                 boolean inclusive)
從介面 NavigableMap 複製的描述
返回此映射的部分視圖,其鍵小於(或等於,如果 inclusive 為 true)toKey。返回的映射受此映射支持,因此返回映射中的更改將反映在此映射中,反之亦然。返回的映射支持此映射支持的所有可選映射操作。

如果試圖在返回映射的範圍之外插入一個鍵,則返回的映射將拋出 IllegalArgumentException

指定者:
介面 NavigableMap<K,V> 中的 headMap
參數:
toKey - 返回映射中鍵的高端點
inclusive - 如果高端點要包含在返回的視圖中,則為 true
返回:
此映射的部分視圖,其鍵小於(或等於,如果 inclusive 為 true)toKey
拋出:
ClassCastException - 如果 toKey 與此映射的比較器不相容(如果映射沒有比較器;如果 toKey 沒有實作 Comparable)。如果 toKey 不能與映射中的當前鍵進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 toKey 為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
IllegalArgumentException - 如果此映射本身有範圍限制,並且 toKey 位於範圍的邊界之外
從以下版本開始:
1.6

tailMap

public NavigableMap<K,V> tailMap(K fromKey,
                                 boolean inclusive)
從介面 NavigableMap 複製的描述
返回此映射的部分視圖,其鍵大於(或等於,如果 inclusive 為 true)fromKey。返回的映射受此映射支持,因此返回映射中的更改將反映在此映射中,反之亦然。返回的映射支持此映射支持的所有可選映射操作。

如果試圖在返回映射的範圍之外插入一個鍵,則返回的映射將拋出 IllegalArgumentException

指定者:
介面 NavigableMap<K,V> 中的 tailMap
參數:
fromKey - 返回映射中鍵的低端點
inclusive - 如果低端點要包含在返回的視圖中,則為 true
返回:
此映射的部分視圖,其鍵大於(或等於,如果 inclusive 為 true)fromKey
拋出:
ClassCastException - 如果 fromKey 與此映射的比較器不相容(如果映射沒有比較器;如果 fromKey 沒有實作 Comparable)。如果 fromKey 不能與映射中的當前鍵進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 fromKey 為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
IllegalArgumentException - 如果此映射本身有範圍限制,並且 fromKey 位於範圍的邊界之外
從以下版本開始:
1.6

subMap

public SortedMap<K,V> subMap(K fromKey,
                             K toKey)
從介面 NavigableMap 複製的描述
返回此映射的部分視圖,其鍵值的範圍從 fromKey(包括)到 toKey(不包括)。(如果 fromKeytoKey 相等,則返回映射為空。)返回的映射受此映射支持,所以在返回映射中的更改將反映在此映射中,反之亦然。返回的映射支持此映射支持的所有可選映射操作。

如果試圖在返回映射的範圍之外插入鍵,則返回的映射將拋出 IllegalArgumentException

等效於 subMap(fromKey, true, toKey, false)

指定者:
介面 NavigableMap<K,V> 中的 subMap
指定者:
介面 SortedMap<K,V> 中的 subMap
參數:
fromKey - 返回映射中鍵的低端點(包括)
toKey - 返回映射中鍵的高端點(不包括)
返回:
此映射的部分視圖,其鍵值的範圍從 fromKey(包括)到 toKey(不包括)
拋出:
ClassCastException - 如果無法使用此映射的比較器(如果此映射沒有比較器,則使用自然順序)比較 fromKeytoKey。如果 fromKeytoKey 不能與映射中當前鍵進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 fromKeytoKey 為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
IllegalArgumentException - 如果 fromKey 大於 toKey;如果此映射本身有範圍限制,並且 fromKeytoKey 位於範圍的邊界之外

headMap

public SortedMap<K,V> headMap(K toKey)
從介面 NavigableMap 複製的描述
返回此映射的部分視圖,其鍵值嚴格小於 toKey。返回的映射受此映射支持,所以在返回映射中的更改將反映在映射中,反之亦然。返回的映射支持此映射支持的所有可選映射操作。

如果試圖在返回映射的範圍之外插入鍵,則返回的映射將拋出 IllegalArgumentException

等效於 headMap(toKey, false)

指定者:
介面 NavigableMap<K,V> 中的 headMap
指定者:
介面 SortedMap<K,V> 中的 headMap
參數:
toKey - 返回映射中鍵的高端點(不包括)
返回:
此映射的部分視圖,該映射的鍵嚴格小於 toKey
拋出:
ClassCastException - 如果 toKey 與此映射的比較器不相容(如果該映射沒有比較器;如果 toKey 沒有實作 Comparable)。如果 toKey 不能與映射中的當前鍵進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 toKey 為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
IllegalArgumentException - 如果此映射本身有範圍限制,並且 toKey 位於範圍的邊界之外

tailMap

public SortedMap<K,V> tailMap(K fromKey)
從介面 NavigableMap 複製的描述
返回此映射的部分視圖,其鍵大於等於 fromKey。返回的映射受此映射支持,所以在返回映射中的更改將反映在映射中,反之亦然。返回的映射支持此映射支持的所有可選映射操作。

如果試圖在返回映射的範圍之外插入鍵,則返回的映射將拋出 IllegalArgumentException

等效於 tailMap(fromKey, true)

指定者:
介面 NavigableMap<K,V> 中的 tailMap
指定者:
介面 SortedMap<K,V> 中的 tailMap
參數:
fromKey - 返回映射中鍵的低端點(包括)
返回:
此映射的部分視圖,其鍵大於等於 fromKey
拋出:
ClassCastException - 如果 fromKey 與此映射的比較器不相容(如果該映射沒有比較器;如果 fromKey 沒有實作 Comparable)。如果 fromKey 不能與映射中的當前鍵進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 fromKey 為 null,並且此映射使用自然順序,或者其比較器不允許使用 null 鍵
IllegalArgumentException - 如果此映射本身有範圍限制,並且 fromKey 位於範圍的邊界之外

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only