|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
K
- 此映射所維護的鍵的型別V
- 映射值的型別public interface SortedMap<K,V>
進一步提供關於鍵的總體排序 的 Map
。該映射是根據其鍵的自然順序進行排序的,或者根據通常在創建有序映射時提供的 Comparator
進行排序。對有序映射的 collection 視圖(由 entrySet、keySet 和 values 方法返回)進行迭代時,此順序就會反映出來。要採用此排序方式,還需要提供一些其他操作(此介面是 SortedSet
的對應映射)。
插入有序映射的所有鍵都必須實作 Comparable 介面(或者被指定的比較器接受)。另外,所有這些鍵都必須是可互相比較的:對有序映射中的任意兩個鍵 k1 和 k2 執行 k1.compareTo(k2)(或 comparator.compare(k1, k2))都不得拋出 ClassCastException。試圖違反此限制將導致違反規則的方法或者建構子調用拋出 ClassCastException。
注意,如果有序映射要正確實作 Map 介面,則有序映射所維持的順序(無論是否提供了明確的比較器)都必須與 equals 一致。(有關與 equals 一致 的精確定義,請參閱 Comparable 介面或 Comparator 介面)。這是因為 Map 介面是按照 equals 操作定義的,但有序映射使用它的 compareTo(或 compare)方法對所有鍵進行比較,因此從有序映射的角度來看,此方法認為相等的兩個鍵就是相等的。即使順序與 equals 不一致,階層樹映射的行為仍然是 定義良好的,只不過沒有遵守 Map 介面的常規協定。
所有通用有序映射實作類別都應該提供 4 個「標準」建構子:1) void(無參數)建構子,它創建一個空的有序映射,按照鍵的自然順序進行排序。2) 帶有一個 Comparator 型別參數的建構子,它創建一個空的有序映射,根據指定的比較器進行排序。3) 帶有一個 Map 型別參數的建構子,它創建一個新的有序映射,其鍵-值映射關係與參數相同,按照鍵的自然順序進行排序。4) 帶有一個 SortedMap 型別參數的建構子,它創建一個新的有序映射,其鍵-值映射關係和排序方法與輸入的有序映射相同。無法保證強制實施此建議,因為介面不能包含建構子。
註:一些方法返回具有受限鍵範圍的子映射。這些範圍區間是半開的,也就是說,它們包括低端點,但不包括高端點(如果適用)。如果需要一個閉區間(同時包括兩個端點),且鍵型別允許計算給定鍵值的後繼值,則只需要請求從 lowEndpoint 到 successor(highEndpoint) 的子區間。例如,假設 m 是一個用字元串作為鍵的映射。下面的語句將得到一個套件含 m 中鍵在 low 和 high(包括)之間的所有鍵-值映射關係的視圖:
SortedMap<String, V> sub = m.subMap(low, high+"\0");可使用類似的技術產生一個開區間 (兩個端點都不包括)。下面的語句將得到一個套件含 m 中鍵在 low 和 high(不包括)之間的所有鍵-值映射關係的視圖:
SortedMap<String, V> sub = m.subMap(low+"\0", high);
此介面是 Java Collections Framework 的成員。
Map
,
TreeMap
,
SortedSet
,
Comparator
,
Comparable
,
Collection
,
ClassCastException
巢狀類別摘要 |
---|
從介面 java.util.Map 繼承的巢狀類別/介面 |
---|
Map.Entry<K,V> |
方法摘要 | |
---|---|
Comparator<? super K> |
comparator()
返回對此映射中的鍵進行排序的比較器;如果此映射使用鍵的自然順序,則返回 null。 |
Set<Map.Entry<K,V>> |
entrySet()
返回在此映射中包含的映射關係的 Set 視圖。 |
K |
firstKey()
返回此映射中當前第一個(最低)鍵。 |
SortedMap<K,V> |
headMap(K toKey)
返回此映射的部分視圖,其鍵值嚴格小於 toKey。 |
Set<K> |
keySet()
返回在此映射中所包含鍵的 Set 視圖。 |
K |
lastKey()
返回映射中當前最後一個(最高)鍵。 |
SortedMap<K,V> |
subMap(K fromKey,
K toKey)
返回此映射的部分視圖,其鍵值的範圍從 fromKey(包括)到 toKey(不包括)。 |
SortedMap<K,V> |
tailMap(K fromKey)
返回此映射的部分視圖,其鍵大於等於 fromKey。 |
Collection<V> |
values()
返回在此映射中所包含值的 Collection 視圖。 |
從介面 java.util.Map 繼承的方法 |
---|
clear, containsKey, containsValue, equals, get, hashCode, isEmpty, put, putAll, remove, size |
方法詳細資訊 |
---|
Comparator<? super K> comparator()
SortedMap<K,V> subMap(K fromKey, K toKey)
如果試圖在返回映射的範圍之外插入鍵,則返回的映射將拋出 IllegalArgumentException。
fromKey
- 返回映射中鍵的低端點(包括)toKey
- 返回映射中鍵的高端點(不包括)
ClassCastException
- 如果無法使用此映射的比較器(如果此映射沒有比較器,則使用自然順序)比較 fromKey 和 toKey。如果 fromKey 或 toKey 不能與映射中當前鍵進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException
- 如果 fromKey 或 toKey 為 null,並且此映射不允許使用 null 鍵
IllegalArgumentException
- 如果 fromKey 大於 toKey;如果此映射本身有範圍限制,並且 fromKey 或 toKey 位於範圍的邊界之外SortedMap<K,V> headMap(K toKey)
如果試圖在返回映射的範圍之外插入鍵,則返回的映射將拋出 IllegalArgumentException。
toKey
- 返回映射中鍵的高端點(不包括)
ClassCastException
- 如果 toKey 與此映射的比較器不相容(如果該映射沒有比較器;如果 toKey 沒有實作 Comparable
)。如果 toKey 不能與映射中的當前鍵進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException
- 如果 toKey 為 null,並且此映射不允許使用 null 鍵
IllegalArgumentException
- 如果此映射本身有範圍限制,並且 toKey 位於範圍的邊界之外SortedMap<K,V> tailMap(K fromKey)
如果試圖在返回映射的範圍之外插入鍵,則返回的映射將拋出 IllegalArgumentException。
fromKey
- 返回映射中鍵的低端點(包括)
ClassCastException
- 如果 fromKey 與此映射的比較器不相容(如果該映射沒有比較器;如果 fromKey 沒有實作 Comparable
)。如果 fromKey 不能與映射中的當前鍵進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException
- 如果 fromKey 為 null,並且此映射不允許使用 null 鍵
IllegalArgumentException
- 如果此映射本身有範圍限制,並且 fromKey 位於範圍的邊界之外K firstKey()
NoSuchElementException
- 如果此映射為空K lastKey()
NoSuchElementException
- 如果此映射為空Set<K> keySet()
Set
視圖。該 set 的迭代器將按升序返回這些鍵。該 set 受映射支持,所以對映射的更改將反映在此 set 中,反之亦然。如果對該 set 進行迭代的同時修改了映射(通過迭代器自己的 remove 操作除外),則迭代結果是不確定的。此 set 支持元素移除,通過 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作可從映射中移除相應的映射關係。它不支持 add 或 addAll 操作。
Map<K,V>
中的 keySet
Collection<V> values()
Collection
視圖。該 collection 的迭代器將按對應鍵的升序返回這些值。該 collection 受映射支持,所以對映射的更改將反映在此 collection 中,反之亦然。如果對該 set 進行迭代的同時修改了映射(通過迭代器自己的 remove 操作除外),則迭代結果是不確定的。該 collection 支持元素的移除,通過 Iterator.remove、Collection.remove、removeAll、retainAll 和 clear 操作可從映射中移除相應的映射關係。它不支持 add 或 addAll 操作。
Map<K,V>
中的 values
Set<Map.Entry<K,V>> entrySet()
Set
視圖。該 set 的迭代器將按升序鍵順序返回這些條目。該 set 受映射支持,所以對映射的更改將反映在此 set 中,反之亦然。如果修改映射的同時正在對該 set 進行迭代(除了通過迭代器自己的 remove 操作,或者通過在迭代器返回的映射項上執行 setValue 操作外),則迭代結果是不確定的。此 set 支持元素移除,通過 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作可從映射中移除相應的映射關係。它不支持 add 或 addAll 操作。
Map<K,V>
中的 entrySet
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。