W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
public interface SortedMap<K,V>
extends Map<K,V>
進(jìn)一步提供對(duì)其鍵的總排序的 Map。 映射根據(jù)其鍵的 Comparable 或通常在排序映射創(chuàng)建時(shí)提供的 Comparator 進(jìn)行排序。 此順序在遍歷已排序地圖的集合視圖(由 entrySet、keySet 和 values 方法返回)時(shí)反映出來。 提供了幾個(gè)額外的操作來利用排序。 (此接口是 SortedSet 的映射類似物。)
插入排序映射的所有鍵都必須實(shí)現(xiàn) Comparable 接口(或被指定的比較器接受)。 此外,所有這些鍵必須是相互可比較的:k1.compareTo(k2)(或comparator.compare(k1, k2))不得為排序映射中的任何鍵k1 和k2 拋出ClassCastException。 嘗試違反此限制將導(dǎo)致有問題的方法或構(gòu)造函數(shù)調(diào)用拋出 ClassCastException。
請(qǐng)注意,如果有序映射要正確實(shí)現(xiàn) Map 接口,則有序映射維護(hù)的排序(無論是否提供顯式比較器)必須與 equals 一致。 (參見 Comparable 接口或 Comparator 接口,了解與 equals 一致的精確定義。)這是因?yàn)?Map 接口是根據(jù) equals 操作定義的,但排序后的映射使用其 compareTo(或 compare)方法執(zhí)行所有鍵比較 ,因此從排序映射的角度來看,此方法認(rèn)為相等的兩個(gè)鍵是相等的。 樹形圖的行為是明確定義的,即使它的排序與等號(hào)不一致; 它只是不遵守 Map 接口的一般合同。
所有通用的排序地圖實(shí)現(xiàn)類都應(yīng)該提供四個(gè)“標(biāo)準(zhǔn)”構(gòu)造函數(shù)。 盡管無法通過接口指定所需的構(gòu)造函數(shù),但無法強(qiáng)制執(zhí)行此建議。 所有排序地圖實(shí)現(xiàn)的預(yù)期“標(biāo)準(zhǔn)”構(gòu)造函數(shù)是:
注意:一些方法返回具有受限鍵范圍的子圖。 這樣的范圍是半開的,也就是說,它們包括它們的低端點(diǎn)但不包括它們的高端點(diǎn)(如果適用)。 如果您需要一個(gè)封閉范圍(包括兩個(gè)端點(diǎn)),并且密鑰類型允許計(jì)算給定密鑰的后繼者,則只需請(qǐng)求從 lowEndpoint 到后繼者(highEndpoint)的子范圍。 例如,假設(shè) m 是一個(gè)鍵是字符串的映射。 以下習(xí)慣用法獲取包含 m 中所有鍵值映射的視圖,其鍵介于低和高之間,包括:
SortedMap<String, V> sub = m.subMap(low, high+"\0");
類似的技術(shù)可用于生成開放范圍(不包含端點(diǎn))。 以下成語獲取一個(gè)視圖,其中包含 m 中的所有鍵值映射,其鍵在低和高之間,互斥:
SortedMap<String, V> sub = m.subMap(low+"\0", high);
此接口是 Java 集合框架的成員。
從接口 java.util.Map 繼承的嵌套類/接口 |
---|
Map.EntryK,V |
修飾符和類型 | 方法 | 描述 |
---|---|---|
Comparator<? super K> | comparator() | 返回用于對(duì)該映射中的鍵進(jìn)行排序的比較器,如果此映射使用其鍵的 Comparable,則返回 null。 |
Set<Map.Entry<K,V>> | entrySet() | 返回此映射中包含的映射的 Set 視圖。 |
K | firstKey() | 返回此映射中當(dāng)前的第一個(gè)(最低)鍵。 |
SortedMapK,V | headMap(K toKey) | 返回此映射部分的視圖,其鍵嚴(yán)格小于 toKey。 |
SetK | keySet() | 返回此映射中包含的鍵的 Set 視圖。 |
K | lastKey() | 返回此映射中當(dāng)前的最后一個(gè)(最高)鍵。 |
SortedMapK,V | subMap(K fromKey, K toKey) | 返回此映射部分的視圖,其鍵范圍從 fromKey(包括)到 toKey(不包括)。 |
SortedMapK,V | tailMap(K fromKey) | 返回此地圖部分的視圖,其鍵大于或等于 fromKey。 |
CollectionV | values() | 返回此映射中包含的值的集合視圖。 |
從接口 java.util.Map 繼承的方法 |
---|
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size |
Comparator<? super K> comparator()
返回用于對(duì)該映射中的鍵進(jìn)行排序的比較器,如果此映射使用其鍵的 Comparable,則返回 null。
返回:
用于對(duì)該映射中的鍵進(jìn)行排序的比較器,如果此映射使用其鍵的自然排序,則為 null
SortedMapK,V subMap(K fromKey, K toKey)
返回此映射部分的視圖,其鍵范圍從 fromKey(包括)到 toKey(不包括)。 (如果 fromKey 和 toKey 相等,則返回的映射為空。)返回的映射受此映射的支持,因此返回映射中的更改會(huì)反映在此映射中,反之亦然。 返回的地圖支持該地圖支持的所有可選地圖操作。
返回的映射將在嘗試在其范圍之外插入鍵時(shí)拋出 IllegalArgumentException。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
fromKey | 返回映射中鍵的低端點(diǎn)(包括) |
toKey | 返回映射中鍵的高端(不包括) |
返回:
此map部分的視圖,其鍵范圍從 fromKey(包括)到 toKey(不包括)
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果 fromKey 和 toKey 無法使用此映射的比較器相互比較(或者,如果映射沒有比較器,則使用自然排序)。 如果無法將 fromKey 或 toKey 與映射中當(dāng)前的鍵進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。 |
NullPointerException | 如果 fromKey 或 toKey 為空并且此映射不允許空鍵 |
IllegalArgumentException | 如果 fromKey 大于 toKey; 或者如果此地圖本身具有限制范圍,并且 fromKey 或 toKey 位于范圍的范圍之外 |
SortedMapK,V headMap(K toKey)
返回此映射部分的視圖,其鍵嚴(yán)格小于 toKey。 返回的地圖由此地圖支持,因此返回地圖中的更改會(huì)反映在此地圖中,反之亦然。 返回的地圖支持該地圖支持的所有可選地圖操作。
返回的映射將在嘗試在其范圍之外插入鍵時(shí)拋出 IllegalArgumentException。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
toKey | 返回映射中鍵的高端(不包括) |
返回:
此map部分的視圖,其鍵嚴(yán)格小于 toKey
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果 toKey 與此map的比較器不兼容(或者,如果map沒有比較器,如果 toKey 沒有實(shí)現(xiàn) Comparable)。 如果 toKey 無法與map中當(dāng)前的鍵進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。 |
NullPointerException | 如果 toKey 為空并且此映射不允許空鍵 |
IllegalArgumentException | 如果此map本身具有受限范圍,并且 toKey 位于范圍之外 |
SortedMapK,V tailMap(K fromKey)
返回此map部分的視圖,其鍵大于或等于 fromKey。 返回的map由此map支持,因此返回map中的更改會(huì)反映在此map中,反之亦然。 返回的map支持該map支持的所有可選map操作。
返回的映射將在嘗試在其范圍之外插入鍵時(shí)拋出 IllegalArgumentException。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
fromKey | 返回映射中鍵的低端點(diǎn)(包括) |
返回:
此map部分的視圖,其鍵大于或等于 fromKey
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果 fromKey 與此映射的比較器不兼容(或者,如果映射沒有比較器,如果 fromKey 未實(shí)現(xiàn) Comparable)。 如果無法將 fromKey 與當(dāng)前映射中的鍵進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。 |
NullPointerException | 如果 fromKey 為空且此映射不允許空鍵 |
IllegalArgumentException | 如果此map本身具有限制范圍,并且 fromKey 位于范圍范圍之外 |
K firstKey()
返回此映射中當(dāng)前的第一個(gè)(最低)鍵。
返回:
當(dāng)前此map中的第一個(gè)(最低)鍵
Throws:
Throw名稱 | Throw描述 |
---|---|
NoSuchElementException | 如果這個(gè)map是空的 |
K lastKey()
返回此映射中當(dāng)前的最后一個(gè)(最高)鍵。
返回:
當(dāng)前在此map中的最后一個(gè)(最高)鍵
Throws:
Throw名稱 | Throw描述 |
---|---|
NoSuchElementException | 如果這個(gè)map是空的 |
SetK keySet()
返回此映射中包含的鍵的 Set 視圖。 集合的迭代器按升序返回鍵。 集合由map支持,因此對(duì)map的更改會(huì)反映在集合中,反之亦然。 如果在對(duì)集合進(jìn)行迭代時(shí)修改了映射(通過迭代器自己的刪除操作除外),則迭代的結(jié)果是不確定的。 該集合支持元素移除,即通過 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作從映射中移除相應(yīng)的映射。 它不支持 add 或 addAll 操作。
指定者:
接口 MapK,V 中的 keySet
返回:
此映射中包含的鍵的集合視圖,按升序排序
CollectionV values()
返回此映射中包含的值的集合視圖。 集合的迭代器按相應(yīng)鍵的升序返回值。 集合由map支持,因此對(duì)map的更改會(huì)反映在集合中,反之亦然。 如果在對(duì)集合進(jìn)行迭代時(shí)修改了映射(通過迭代器自己的刪除操作除外),則迭代的結(jié)果是不確定的。 該集合支持元素移除,即通過 Iterator.remove、Collection.remove、removeAll、retainAll 和 clear 操作從映射中移除相應(yīng)的映射。 它不支持 add 或 addAll 操作。
指定者:
接口 MapK,V 中的值
返回:
此映射中包含的值的集合視圖,按升序鍵排序
Set<Map.Entry<K,V>> entrySet()
返回此映射中包含的映射的 Set 視圖。 集合的迭代器以升序鍵順序返回條目。 集合由map支持,因此對(duì)map的更改會(huì)反映在集合中,反之亦然。 如果在對(duì)集合進(jìn)行迭代時(shí)修改了映射(除了通過迭代器自己的刪除操作,或通過迭代器返回的映射條目上的 setValue 操作),則迭代的結(jié)果是未定義的。 該集合支持元素移除,即通過 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作從映射中移除相應(yīng)的映射。 它不支持 add 或 addAll 操作。
指定者:
接口 MapK,V 中的 entrySet
返回:
此映射中包含的映射的集合視圖,按升序鍵排序
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: