鴻蒙OS TreeMap

2022-08-10 14:10 更新

TreeMap

java.lang.Object

|---java.util.AbstractMap<K,V&

|---|---java.util.TreeMap<K,V&

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

基于紅黑樹的 NavigableMap 實現(xiàn)。 地圖根據(jù)其鍵的 Comparable 排序,或者根據(jù)地圖創(chuàng)建時提供的 Comparator 排序,具體取決于使用的構(gòu)造函數(shù)。

此實現(xiàn)為 containsKey、get、put 和 remove 操作提供有保證的 log(n) 時間成本。 算法是對 Cormen、Leiserson 和 Rivest 的算法簡介中的那些算法的改編。

請注意,樹形映射維護的順序,就像任何排序映射一樣,以及是否提供顯式比較器,如果此排序映射要正確實現(xiàn) Map 接口,則必須與 equals 保持一致。 (參見 Comparable 或 Comparator 以了解與 equals 一致的精確定義。)這是因為 Map 接口是根據(jù) equals 操作定義的,但排序后的映射使用其 compareTo(或比較)方法執(zhí)行所有鍵比較,所以兩個 從排序映射的角度來看,此方法認(rèn)為相等的鍵是相等的。 已排序映射的行為是明確定義的,即使它的排序與 equals 不一致; 它只是不遵守 Map 接口的一般合同。

請注意,此實現(xiàn)不同步。 如果多個線程同時訪問一個映射,并且至少有一個線程在結(jié)構(gòu)上修改了映射,則必須在外部進行同步。 (結(jié)構(gòu)修改是添加或刪除一個或多個映射的任何操作;僅更改與現(xiàn)有鍵關(guān)聯(lián)的值不是結(jié)構(gòu)修改。)這通常通過同步一些自然封裝映射的對象來完成。 如果不存在這樣的對象,則應(yīng)使用 Collections#synchronizedSortedMap 方法“包裝” map。 這最好在創(chuàng)建時完成,以防止對地圖的意外不同步訪問:

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

由此類的所有“集合視圖方法”返回的集合的迭代器方法返回的迭代器是快速失敗的:如果在創(chuàng)建迭代器后的任何時間對映射進行結(jié)構(gòu)修改,除了通過迭代器自己的刪除之外的任何方式 方法,迭代器將拋出 ConcurrentModificationException。 因此,面對并發(fā)修改,迭代器快速而干凈地失敗,而不是在未來不確定的時間冒任意的、非確定性的行為。

請注意,不能保證迭代器的快速失敗行為,因為一般來說,在存在不同步的并發(fā)修改的情況下,不可能做出任何硬保證。 快速失敗的迭代器會盡最大努力拋出 ConcurrentModificationException。 因此,編寫一個依賴于這個異常的正確性的程序是錯誤的:迭代器的快速失敗行為應(yīng)該只用于檢測錯誤。

此類中的方法及其視圖返回的所有 Map.Entry 對都表示映射在生成時的快照。 它們不支持 Entry.setValue 方法。 (但請注意,可以使用 put 更改關(guān)聯(lián)映射中的映射。)

此類是 Java 集合框架的成員。

嵌套類摘要

從類 java.util.AbstractMap 繼承的嵌套類/接口
AbstractMap.SimpleEntryK,V, AbstractMap.SimpleImmutableEntryK,V
從接口 java.util.Map 繼承的嵌套類/接口
Map.EntryK,V

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
TreeMap() 使用其鍵的自然順序構(gòu)造一個新的空樹映射。
TreeMap(Comparator<? super K> comparator) 構(gòu)造一個新的空樹映射,根據(jù)給定的比較器排序。
TreeMap(Map<? extends K,? extends V> m) 構(gòu)造一個包含與給定映射相同映射的新樹映射,按照其鍵的自然順序排序。
TreeMap(SortedMap<K,? extends V> m) 構(gòu)造一個新的樹形圖,其中包含與指定的排序圖相同的映射并使用相同的順序。

方法總結(jié)

修飾符和類型 方法 描述
Map.EntryK,V ceilingEntry(K key) 返回與大于或等于給定鍵的最小鍵關(guān)聯(lián)的鍵值映射,如果沒有這樣的鍵,則返回 null。
K ceilingKey(K key) 返回大于或等于給定鍵的最小鍵,如果沒有這樣的鍵,則返回 null。
void clear() 從此 map 中刪除所有映射。
Object clone() 返回此 TreeMap 實例的淺表副本。
Comparator<? super K> comparator() 返回用于對該映射中的鍵進行排序的比較器,如果此映射使用其鍵的 Comparable,則返回 null。
boolean containsKey(Object key) 如果此映射包含指定鍵的映射,則返回 true。
boolean containsValue(Object value) 如果此映射將一個或多個鍵映射到指定值,則返回 true。
NavigableSetK descendingKeySet() 返回此映射中包含的鍵的逆序 NavigableSet 視圖。
NavigableMapK,V descendingMap() 返回此映射中包含的映射的逆序視圖。
SetMap.EntryK,V entrySet() 返回此映射中包含的映射的 Set 視圖。
Map.EntryK,V firstEntry() 返回與此映射中的最小鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。
K firstKey() 返回此映射中當(dāng)前的第一個(最低)鍵。
Map.EntryK,V floorEntry(K key) 返回與小于或等于給定鍵的最大鍵關(guān)聯(lián)的鍵值映射,如果沒有這樣的鍵,則返回 null。
K floorKey(K key) 返回小于或等于給定鍵的最大鍵,如果沒有這樣的鍵,則返回 null。
void forEach(BiConsumer<? super K,? super V> action) 對該映射中的每個條目執(zhí)行給定的操作,直到處理完所有條目或該操作引發(fā)異常。
V get(Object key) 返回指定鍵映射到的值,如果此映射不包含該鍵的映射,則返回 null。
SortedMapK,V headMap(K toKey) 返回此映射部分的視圖,其鍵嚴(yán)格小于 toKey。
NavigableMapK,V headMap(K toKey, boolean inclusive) 返回此映射部分的視圖,其鍵小于(或等于,如果 inclusive 為真)toKey。
Map.EntryK,V higherEntry(K key) 返回與嚴(yán)格大于給定鍵的最小鍵關(guān)聯(lián)的鍵值映射,如果沒有這樣的鍵,則返回 null。
K higherKey(K key) 返回嚴(yán)格大于給定鍵的最小鍵,如果沒有這樣的鍵,則返回 null。
SetK keySet() 返回此映射中包含的鍵的 Set 視圖。
Map.EntryK,V lastEntry() 返回與此映射中最大鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。
K lastKey() 返回此映射中當(dāng)前的最后一個(最高)鍵。
Map.EntryK,V lowerEntry(K key) 返回與嚴(yán)格小于給定鍵的最大鍵關(guān)聯(lián)的鍵值映射,如果沒有這樣的鍵,則返回 null。
K lowerKey(K key) 返回嚴(yán)格小于給定鍵的最大鍵,如果沒有這樣的鍵,則返回 null。
NavigableSetK navigableKeySet() 返回此地圖中包含的鍵的 NavigableSet 視圖。
Map.EntryK,V pollFirstEntry() 移除并返回與此映射中最小鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。
Map.EntryK,V pollLastEntry() 刪除并返回與此映射中最大鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。
V put(K key, V value) 將指定的值與此映射中的指定鍵相關(guān)聯(lián)。
void putAll(Map<? extends K,? extends V> map) 將所有映射從指定映射復(fù)制到此映射。
V remove(Object key) 如果存在,則從此 TreeMap 中刪除此鍵的映射。
V replace(K key, V value) 僅當(dāng)當(dāng)前映射到某個值時才替換指定鍵的條目。
boolean replace(K key, V oldValue, V newValue) 僅當(dāng)當(dāng)前映射到指定值時才替換指定鍵的條目。
void replaceAll(BiFunction<? super K,? super V,? extends V> function) 將每個條目的值替換為對該條目調(diào)用給定函數(shù)的結(jié)果,直到所有條目都已處理或該函數(shù)引發(fā)異常。
int size() 返回此映射中鍵值映射的數(shù)量。
NavigableMapK,V subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) 返回此映射部分的視圖,其鍵范圍從 fromKey 到 toKey。
SortedMapK,V subMap(K fromKey, K toKey) 返回此映射部分的視圖,其鍵范圍從 fromKey(包括)到 toKey(不包括)。
SortedMapK,V tailMap(K fromKey) 返回此地圖部分的視圖,其鍵大于或等于 fromKey。
NavigableMapK,V tailMap(K fromKey, boolean inclusive) 返回此映射部分的視圖,其鍵大于(或等于,如果 inclusive 為 true)fromKey。
CollectionV values() 返回此映射中包含的值的集合視圖。
從類 java.util.AbstractMap 繼承的方法
equals, hashCode, isEmpty, toString
從接口 java.util.Map 繼承的方法
compute, computeIfAbsent, computeIfPresent, equals, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove
從類 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait

構(gòu)造函數(shù)詳細(xì)信息

TreeMap

public TreeMap()

使用其鍵的自然順序構(gòu)造一個新的空樹映射。 插入映射的所有鍵都必須實現(xiàn) Comparable 接口。 此外,所有此類鍵必須相互比較:k1.compareTo(k2) 不得為映射中的任何鍵 k1 和 k2 拋出 ClassCastException。 如果用戶嘗試將違反此約束的鍵放入映射中(例如,用戶嘗試將字符串鍵放入鍵為整數(shù)的映射中),則 put(Object key, Object value) 調(diào)用將拋出 ClassCastException .

TreeMap

public TreeMap(Comparator<? super K> comparator)

構(gòu)造一個新的空樹映射,根據(jù)給定的比較器排序。 插入到映射中的所有鍵必須通過給定的比較器相互比較:comparator.compare(k1, k2) 不能為映射中的任何鍵 k1 和 k2 拋出 ClassCastException。 如果用戶試圖將違反此約束的鍵放入映射中,則 put(Object key, Object value) 調(diào)用將拋出 ClassCastException。

參數(shù):

參數(shù)名稱 參數(shù)描述
comparator 將用于訂購此地圖的比較器。 如果為 null,則將使用鍵的 Comparable。

TreeMap

public TreeMap(Map<? extends K,? extends V> m)

構(gòu)造一個包含與給定映射相同映射的新樹映射,按照其鍵的自然順序排序。 插入新映射的所有鍵都必須實現(xiàn) Comparable 接口。 此外,所有此類鍵必須相互比較:k1.compareTo(k2) 不得為映射中的任何鍵 k1 和 k2 拋出 ClassCastException。 此方法在 n*log(n) 時間內(nèi)運行。

參數(shù):

參數(shù)名稱 參數(shù)描述
m 其映射將放置在此 map 中的 map

Throws:

Throw名稱 Throw描述
ClassCastException 如果 m 中的鍵不可比較,或者不可相互比較
NullPointerException 如果指定的 map 為空

TreeMap

public TreeMap(SortedMap<K,? extends V> m)

構(gòu)造一個新的樹形圖,其中包含與指定的排序圖相同的映射并使用相同的順序。 此方法以線性時間運行。

參數(shù):

參數(shù)名稱 參數(shù)描述
m 已排序的映射,其映射將放置在此映射中,并且其比較器將用于對此映射進行排序

Throws:

Throw名稱 Throw描述
NullPointerException 如果指定的 map 為空

方法詳情

size

public int size()

返回此映射中鍵值映射的數(shù)量。

指定者:

接口 MapK,V 中的大小

覆蓋:

AbstractMapK,V 類中的大小

返回:

此映射中的鍵值映射的數(shù)量

containsKey

public boolean containsKey(Object key)

如果此映射包含指定鍵的映射,則返回 true。

指定者:

containsKey 在接口 MapK,V

覆蓋:

類 AbstractMapK,V 中的 containsKey

參數(shù):

參數(shù)名稱 參數(shù)描述
key 要測試此 map 中是否存在的鍵

返回:

如果此映射包含指定鍵的映射,則為 true

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

containsValue

public boolean containsValue(Object value)

如果此映射將一個或多個鍵映射到指定值,則返回 true。 更正式地說,當(dāng)且僅當(dāng)此映射包含至少一個到值 v 的映射時才返回 true,使得 (value==null ? v==null : value.equals(v))。 對于大多數(shù)實現(xiàn),此操作可能需要 map 大小的線性時間。

指定者:

接口 MapK,V 中的 containsValue

覆蓋:

類 AbstractMapK,V 中的 containsValue

參數(shù):

參數(shù)名稱 參數(shù)描述
value 要測試其在此映射中的存在的值

返回:

如果存在到值的映射,則為 true; 否則為 false

get

public V get(Object key)

返回指定鍵映射到的值,如果此映射不包含該鍵的映射,則返回 null。

更正式地說,如果此映射包含從鍵 k 到值 v 的映射,使得鍵根據(jù)映射的順序比較等于 k,則此方法返回 v; 否則返回null。 (最多可以有一個這樣的映射。)

返回值為 null 并不一定表示該映射不包含該鍵的映射; 映射也可能將鍵顯式映射為空。 containsKey 操作可用于區(qū)分這兩種情況。

指定者:

進入接口 MapK,V

覆蓋:

進入類 AbstractMapK,V

參數(shù):

參數(shù)名稱 參數(shù)描述
key 要返回其關(guān)聯(lián)值的鍵

返回:

指定鍵映射到的值,如果此映射不包含該鍵的映射,則為 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

comparator

public Comparator<? super K> comparator()

從接口復(fù)制的描述:SortedMap

返回用于對該映射中的鍵進行排序的比較器,如果此映射使用其鍵的 Comparable,則返回 null。

指定者:

接口 SortedMapK,V 中的比較器

返回:

用于對該映射中的鍵進行排序的比較器,如果此映射使用其鍵的自然排序,則為 null

firstKey

public K firstKey()

從接口復(fù)制的描述:SortedMap

返回此映射中當(dāng)前的第一個(最低)鍵。

指定者:

接口 SortedMapK,V 中的 firstKey

返回:

當(dāng)前此 map 中的第一個(最低)鍵

Throws:

Throw名稱 Throw描述
NoSuchElementException 如果這個 map 是空的

lastKey

public K lastKey()

從接口復(fù)制的描述:SortedMap

返回此映射中當(dāng)前的最后一個(最高)鍵。

指定者:

接口 SortedMapK,V 中的 lastKey

返回:

當(dāng)前在此 map 中的最后一個(最高)鍵

Throws:

Throw名稱 Throw描述
NoSuchElementException 如果這個 map 是空的

putAll

public void putAll(Map<? extends K,? extends V> map)

將所有映射從指定映射復(fù)制到此映射。 這些映射替換此映射對當(dāng)前指定映射中的任何鍵的任何映射。

指定者:

putAll在接口MapK,V中

覆蓋:

putAll 在類 AbstractMapK,V

參數(shù):

參數(shù)名稱 參數(shù)描述
map 要存儲在此 map 中的映射

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定映射中的鍵或值的類阻止它存儲在此映射中
NullPointerException 如果指定的映射為空或指定的映射包含空鍵并且此映射不允許空鍵

put

public V put(K key, V value)

將指定的值與此映射中的指定鍵相關(guān)聯(lián)。 如果映射先前包含鍵的映射,則替換舊值。

指定者:

放入接口 MapK,V

覆蓋:

放入類 AbstractMapK,V

參數(shù):

參數(shù)名稱 參數(shù)描述
key 與指定值關(guān)聯(lián)的鍵
value 與指定鍵關(guān)聯(lián)的值

返回:

與 key 關(guān)聯(lián)的前一個值,如果沒有 key 映射,則返回 null。 (返回 null 還可以指示映射先前將 null 與 key 關(guān)聯(lián)。)

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

remove

public V remove(Object key)

如果存在,則從此 TreeMap 中刪除此鍵的映射。

指定者:

在接口 MapK,V 中刪除

覆蓋:

在類 AbstractMapK,V 中刪除

參數(shù):

參數(shù)名稱 參數(shù)描述
key 應(yīng)該刪除映射的鍵

返回:

與 key 關(guān)聯(lián)的前一個值,如果沒有 key 映射,則返回 null。 (返回 null 還可以指示映射先前將 null 與 key 關(guān)聯(lián)。)

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

clear

public void clear()

從此 map 中刪除所有映射。 此調(diào)用返回后,map 將為空。

指定者:

在界面 MapK,V 中清除

覆蓋:

在類 AbstractMapK,V 中清除

clone

public Object clone()

返回此 TreeMap 實例的淺表副本。 (鍵和值本身不會被克隆。)

覆蓋:

在類 AbstractMapK,V 中克隆

返回:

這張 map 的淺拷貝

firstEntry

public Map.EntryK,V firstEntry()

從接口復(fù)制的描述:NavigableMap

返回與此映射中的最小鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。

指定者:

接口 NavigableMapK,V 中的 firstEntry

返回:

具有最少鍵的條目,如果此映射為空,則為 null

lastEntry

public Map.EntryK,V lastEntry()

從接口復(fù)制的描述:NavigableMap

返回與此映射中最大鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。

指定者:

接口 NavigableMapK,V 中的 lastEntry

返回:

具有最大鍵的條目,如果此映射為空,則返回 null

pollFirstEntry

public Map.EntryK,V pollFirstEntry()

從接口復(fù)制的描述:NavigableMap

移除并返回與此映射中最小鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。

指定者:

接口 NavigableMapK,V 中的 pollFirstEntry

返回:

此映射的已刪除第一個條目,如果此映射為空,則返回 null

pollLastEntry

public Map.EntryK,V pollLastEntry()

從接口復(fù)制的描述:NavigableMap

刪除并返回與此映射中最大鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。

指定者:

接口 NavigableMapK,V 中的 pollLastEntry

返回:

此映射的已刪除最后一個條目,如果此映射為空,則返回 null

lowerEntry

public Map.EntryK,V lowerEntry(K key)

從接口復(fù)制的描述:NavigableMap

返回與嚴(yán)格小于給定鍵的最大鍵關(guān)聯(lián)的鍵值映射,如果沒有這樣的鍵,則返回 null。

指定者:

接口 NavigableMapK,V 中的 lowerEntry

參數(shù):

參數(shù)名稱 參數(shù)描述
key

返回:

最大鍵小于鍵的條目,如果沒有這樣的鍵,則返回 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

lowerKey

public K lowerKey(K key)

從接口復(fù)制的描述:NavigableMap

返回嚴(yán)格小于給定鍵的最大鍵,如果沒有這樣的鍵,則返回 null。

指定者:

接口 NavigableMapK,V 中的 lowerKey

參數(shù):

參數(shù)名稱 參數(shù)描述
key

返回:

小于 key 的最大鍵,如果沒有這樣的鍵,則為 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

floorEntry

public Map.EntryK,V floorEntry(K key)

從接口復(fù)制的描述:NavigableMap

返回與小于或等于給定鍵的最大鍵關(guān)聯(lián)的鍵值映射,如果沒有這樣的鍵,則返回 null。

指定者:

接口 NavigableMapK,V 中的 floorEntry

參數(shù):

參數(shù)名稱 參數(shù)描述
key

返回:

最大鍵小于或等于鍵的條目,如果沒有這樣的鍵,則返回 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

floorKey

public K floorKey(K key)

從接口復(fù)制的描述:NavigableMap

返回小于或等于給定鍵的最大鍵,如果沒有這樣的鍵,則返回 null。

指定者:

接口 NavigableMapK,V 中的 floorKey

參數(shù):

參數(shù)名稱 參數(shù)描述
key

返回:

小于或等于 key 的最大鍵,如果沒有這樣的鍵,則為 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

ceilingEntry

public Map.EntryK,V ceilingEntry(K key)

從接口復(fù)制的描述:NavigableMap

返回與大于或等于給定鍵的最小鍵關(guān)聯(lián)的鍵值映射,如果沒有這樣的鍵,則返回 null。

指定者:

接口 NavigableMapK,V 中的 ceilingEntry

參數(shù):

參數(shù)名稱 參數(shù)描述
key

返回:

具有大于或等于 key 的最小鍵的條目,如果沒有這樣的鍵,則返回 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

ceilingKey

public K ceilingKey(K key)

從接口復(fù)制的描述:NavigableMap

返回大于或等于給定鍵的最小鍵,如果沒有這樣的鍵,則返回 null。

指定者:

接口 NavigableMapK,V 中的 ceilingKey

參數(shù):

參數(shù)名稱 參數(shù)描述
key

返回:

大于或等于 key 的最小鍵,如果沒有這樣的鍵,則返回 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

higherEntry

public Map.EntryK,V higherEntry(K key)

從接口復(fù)制的描述:NavigableMap

返回與嚴(yán)格大于給定鍵的最小鍵關(guān)聯(lián)的鍵值映射,如果沒有這樣的鍵,則返回 null。

指定者:

接口 NavigableMapK,V 中的更高條目

參數(shù):

參數(shù)名稱 參數(shù)描述
key

返回:

最小鍵大于鍵的條目,如果沒有這樣的鍵,則返回 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

higherKey

public K higherKey(K key)

從接口復(fù)制的描述:NavigableMap

返回嚴(yán)格大于給定鍵的最小鍵,如果沒有這樣的鍵,則返回 null。

指定者:

接口 NavigableMapK,V 中的higherKey

參數(shù):

參數(shù)名稱 參數(shù)描述
key

返回:

大于 key 的最小鍵,如果沒有這樣的鍵,則返回 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定的鍵無法與 map 中當(dāng)前的鍵進行比較
NullPointerException 如果指定的鍵為空并且此映射使用自然排序,或者它的比較器不允許空鍵

keySet

public SetK keySet()

返回此映射中包含的鍵的 Set 視圖。

集合的迭代器按升序返回鍵。該集合的拆分器是后期綁定的、快速失敗的,并且另外報告 Spliterator#SORTED 和 Spliterator#ORDERED 的遇到順序是升序鍵順序。如果樹形圖的比較器(請參閱比較器())為空,則拆分器的比較器(請參閱 Spliterator.getComparator())為空。否則,拆分器的比較器與樹形圖的比較器相同或施加相同的總排序。

集合由 map 支持,因此對 map 的更改會反映在集合中,反之亦然。如果在對集合進行迭代時修改了映射(通過迭代器自己的刪除操作除外),則迭代的結(jié)果是不確定的。該集合支持元素移除,即通過 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作從映射中移除相應(yīng)的映射。它不支持 add 或 addAll 操作。

指定者:

接口 MapK,V 中的 keySet

指定者:

接口 SortedMapK,V 中的 keySet

覆蓋:

AbstractMapK,V 類中的 keySet

返回:

此 map 中包含的鍵的集合視圖

navigableKeySet

public NavigableSetK navigableKeySet()

從接口復(fù)制的描述:NavigableMap

返回此 map 中包含的鍵的 NavigableSet 視圖。 集合的迭代器按升序返回鍵。 集合由 map 支持,因此對 map 的更改會反映在集合中,反之亦然。 如果在對集合進行迭代時修改了映射(通過迭代器自己的刪除操作除外),則迭代的結(jié)果是不確定的。 該集合支持元素移除,即通過 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作從映射中移除相應(yīng)的映射。 它不支持 add 或 addAll 操作。

指定者:

接口 NavigableMapK,V 中的 navigableKeySet

返回:

此 map 中鍵的可導(dǎo)航集視圖

descendingKeySet

public NavigableSetK descendingKeySet()

從接口復(fù)制的描述:NavigableMap

返回此映射中包含的鍵的逆序 NavigableSet 視圖。 該集合的迭代器按降序返回鍵。 集合由 map 支持,因此對 map 的更改會反映在集合中,反之亦然。 如果在對集合進行迭代時修改了映射(通過迭代器自己的刪除操作除外),則迭代的結(jié)果是不確定的。 該集合支持元素移除,即通過 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作從映射中移除相應(yīng)的映射。 它不支持 add 或 addAll 操作。

指定者:

接口 NavigableMapK,V 中的 descendingKeySet

返回:

此 map 中鍵的反向可導(dǎo)航集視圖

values

public CollectionV values()

返回此映射中包含的值的集合視圖。

集合的迭代器按相應(yīng)鍵的升序返回值。集合的拆分器是后期綁定的,快速失敗的,并且另外報告 Spliterator#ORDERED 遇到的順序是相應(yīng)鍵的升序。

集合由 map 支持,因此對 map 的更改會反映在集合中,反之亦然。如果在對集合進行迭代時修改了映射(通過迭代器自己的刪除操作除外),則迭代的結(jié)果是不確定的。該集合支持元素移除,即通過 Iterator.remove、Collection.remove、removeAll、retainAll 和 clear 操作從映射中移除相應(yīng)的映射。它不支持 add 或 addAll 操作。

指定者:

接口 MapK,V 中的值

指定者:

接口 SortedMapK,V 中的值

覆蓋:

AbstractMapK,V 類中的值

返回:

此 map 中包含的值的集合視圖

entrySet

public SetMap.EntryK,V entrySet()

返回此映射中包含的映射的 Set 視圖。

集合的迭代器以升序鍵順序返回條目。集合的拆分器是后期綁定的、快速失敗的,并且另外報告 Spliterator#SORTED 和 Spliterator#ORDERED 的遇到順序是升序鍵順序。

集合由 map 支持,因此對 map 的更改會反映在集合中,反之亦然。如果在對集合進行迭代時修改了映射(除了通過迭代器自己的刪除操作,或通過迭代器返回的映射條目上的 setValue 操作),則迭代的結(jié)果是未定義的。該集合支持元素移除,即通過 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作從映射中移除相應(yīng)的映射。它不支持 add 或 addAll 操作。

指定者:

接口 MapK,V 中的 entrySet

指定者:

接口 SortedMapK,V 中的 entrySet

指定者:

AbstractMapK,V 類中的 entrySet

返回:

此 map 中包含的映射的集合視圖

descendingMap

public NavigableMapK,V descendingMap()

從接口復(fù)制的描述:NavigableMap

返回此映射中包含的映射的逆序視圖。 下降映射由該映射支持,因此對映射的更改會反映在下降映射中,反之亦然。 如果在對任一映射的集合視圖進行迭代時修改了任一映射(通過迭代器自己的刪除操作除外),則迭代的結(jié)果是未定義的。

返回的映射具有等價于 Collections#reverseOrder(Comparator)(comparator()) 的排序。 表達式 m.descendingMap().descendingMap() 返回一個 m 的視圖,基本上等同于 m。

指定者:

接口 NavigableMapK,V 中的 descendingMap

返回:

此 map 的逆序視圖

subMap

public NavigableMapK,V subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)

從接口復(fù)制的描述:NavigableMap

返回此映射部分的視圖,其鍵范圍從 fromKey 到 toKey。 如果 fromKey 和 toKey 相等,則返回的映射為空,除非 fromInclusive 和 toInclusive 都為 true。 返回的 map 由該 map 支持,因此返回 map 中的更改會反映在該 map 中,反之亦然。 返回的 map 支持該 map 支持的所有可選 map 操作。

返回的映射將在嘗試插入超出其范圍的鍵或構(gòu)造其端點位于其范圍之外的子映射時拋出 IllegalArgumentException。

指定者:

接口 NavigableMapK,V 中的 subMap

參數(shù):

參數(shù)名稱 參數(shù)描述
fromKey 返回映射中鍵的低端點
fromInclusive 如果要在返回的視圖中包含低端點,則為 true
toKey 返回映射中鍵的高端點
toInclusive 如果要在返回的視圖中包含高端端點,則為 true

返回:

此 map 部分的視圖,其鍵范圍從 fromKey 到 toKey

Throws:

Throw名稱 Throw描述
ClassCastException 如果 fromKey 和 toKey 無法使用此映射的比較器相互比較(或者,如果映射沒有比較器,則使用自然排序)。 如果無法將 fromKey 或 toKey 與映射中當(dāng)前的鍵進行比較,則實現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 fromKey 或 toKey 為 null 并且此映射使用自然排序,或者其比較器不允許 null 鍵
IllegalArgumentException 如果 fromKey 大于 toKey; 或者如果此地圖本身具有限制范圍,并且 fromKey 或 toKey 位于范圍的范圍之外

headMap

public NavigableMapK,V headMap(K toKey, boolean inclusive)

從接口復(fù)制的描述:NavigableMap

返回此映射部分的視圖,其鍵小于(或等于,如果 inclusive 為 true)toKey。 返回的 map 由該 map 支持,因此返回 map 中的更改會反映在該 map 中,反之亦然。 返回的 map 支持該 map 支持的所有可選 map 操作。

返回的映射將在嘗試在其范圍之外插入鍵時拋出 IllegalArgumentException。

指定者:

接口 NavigableMapK,V 中的 headMap

參數(shù):

參數(shù)名稱 參數(shù)描述
toKey 返回映射中鍵的高端點
inclusive 如果要在返回的視圖中包含高端端點,則為 true

返回:

此 map 部分的視圖,其鍵小于(或等于,如果 inclusive 為 true)toKey

Throws:

Throw名稱 Throw描述
ClassCastException 如果 toKey 與此 map 的比較器不兼容(或者,如果 map 沒有比較器,如果 toKey 沒有實現(xiàn) Comparable)。 如果 toKey 無法與地圖中當(dāng)前的鍵進行比較,則實現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 toKey 為空且此映射使用自然排序,或者其比較器不允許空鍵
IllegalArgumentException 如果此 map 本身具有受限范圍,并且 toKey 位于范圍之外

tailMap

public NavigableMapK,V tailMap(K fromKey, boolean inclusive)

從接口復(fù)制的描述:NavigableMap

返回此映射部分的視圖,其鍵大于(或等于,如果 inclusive 為 true)fromKey。 返回的 map 由該 map 支持,因此返回 map 中的更改會反映在該 map 中,反之亦然。 返回的 map 支持該 map 支持的所有可選 map 操作。

返回的映射將在嘗試在其范圍之外插入鍵時拋出 IllegalArgumentException。

指定者:

接口 NavigableMapK,V 中的 tailMap

參數(shù):

參數(shù)名稱 參數(shù)描述
fromKey 返回映射中鍵的低端點
inclusive 如果要在返回的視圖中包含低端點,則為 true

返回:

此 map 部分的視圖,其鍵大于(或等于,如果 inclusive 為 true)fromKey

Throws:

Throw名稱 Throw描述
ClassCastException 如果 fromKey 與此映射的比較器不兼容(或者,如果映射沒有比較器,如果 fromKey 未實現(xiàn) Comparable)。 如果無法將 fromKey 與當(dāng)前映射中的鍵進行比較,則實現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 fromKey 為 null 并且此映射使用自然排序,或者它的比較器不允許 null 鍵
IllegalArgumentException 如果此 map 本身具有限制范圍,并且 fromKey 位于范圍范圍之外

subMap

public SortedMapK,V subMap(K fromKey, K toKey)

從接口復(fù)制的描述:NavigableMap

返回此映射部分的視圖,其鍵范圍從 fromKey(包括)到 toKey(不包括)。 (如果 fromKey 和 toKey 相等,則返回的映射為空。)返回的映射受此映射的支持,因此返回映射中的更改會反映在此映射中,反之亦然。 返回的地圖支持該地圖支持的所有可選地圖操作。

返回的映射將在嘗試在其范圍之外插入鍵時拋出 IllegalArgumentException。

等價于 subMap(fromKey, true, toKey, false)。

指定者:

接口 NavigableMapK,V 中的 subMap

指定者:

接口 SortedMapK,V 中的 subMap

參數(shù):

參數(shù)名稱 參數(shù)描述
fromKey 返回映射中鍵的低端點(包括)
toKey 返回映射中鍵的高端(不包括)

返回:

此 map 部分的視圖,其鍵范圍從 fromKey(包括)到 toKey(不包括)

Throws:

Throw名稱 Throw描述
ClassCastException 如果 fromKey 和 toKey 無法使用此映射的比較器相互比較(或者,如果映射沒有比較器,則使用自然排序)。 如果無法將 fromKey 或 toKey 與映射中當(dāng)前的鍵進行比較,則實現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 fromKey 或 toKey 為 null 并且此映射使用自然排序,或者其比較器不允許 null 鍵
IllegalArgumentException 如果 fromKey 大于 toKey; 或者如果此 map 本身具有限制范圍,并且 fromKey 或 toKey 位于范圍的范圍之外

headMap

public SortedMapK,V headMap(K toKey)

從接口復(fù)制的描述:NavigableMap

返回此映射部分的視圖,其鍵嚴(yán)格小于 toKey。 返回的 map 由該 map 支持,因此返回 map 中的更改會反映在該 map 中,反之亦然。 返回的 map 支持該 map 支持的所有可選 map 操作。

返回的映射將在嘗試在其范圍之外插入鍵時拋出 IllegalArgumentException。

等效于 headMap(toKey, false)。

指定者:

接口 NavigableMapK,V 中的 headMap

指定者:

接口 SortedMapK,V 中的 headMap

參數(shù):

參數(shù)名稱 參數(shù)描述
toKey 返回映射中鍵的高端(不包括)

返回:

此 map 部分的視圖,其鍵嚴(yán)格小于 toKey

Throws:

Throw名稱 Throw描述
ClassCastException 如果 toKey 與此 map 的比較器不兼容(或者,如果 map 沒有比較器,如果 toKey 沒有實現(xiàn) Comparable)。 如果 toKey 無法與 map 中當(dāng)前的鍵進行比較,則實現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 toKey 為空且此映射使用自然排序,或者其比較器不允許空鍵
IllegalArgumentException 如果此 map 本身具有受限范圍,并且 toKey 位于范圍之外

tailMap

public SortedMapK,V tailMap(K fromKey)

從接口復(fù)制的描述:NavigableMap

返回此 map 部分的視圖,其鍵大于或等于 fromKey。 返回的 map 由此 map 支持,因此返回 map 中的更改會反映在此 map 中,反之亦然。 返回的 map 支持該 map 支持的所有可選 map 操作。

返回的映射將在嘗試在其范圍之外插入鍵時拋出 IllegalArgumentException。

等價于tailMap(fromKey, true)。

指定者:

接口 NavigableMapK,V 中的 tailMap

指定者:

接口 SortedMapK,V 中的 tailMap

參數(shù):

參數(shù)名稱 參數(shù)描述
fromKey 返回映射中鍵的低端點(包括)

返回:

此 map 部分的視圖,其鍵大于或等于 fromKey

Throws:

Throw名稱 Throw描述
ClassCastException 如果 fromKey 與此映射的比較器不兼容(或者,如果映射沒有比較器,如果 fromKey 未實現(xiàn) Comparable)。 如果無法將 fromKey 與當(dāng)前映射中的鍵進行比較,則實現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 fromKey 為 null 并且此映射使用自然排序,或者它的比較器不允許 null 鍵
IllegalArgumentException 如果此 map 本身具有限制范圍,并且 fromKey 位于范圍范圍之外

replace

public boolean replace(K key, V oldValue, V newValue)

從接口復(fù)制的描述:map

僅當(dāng)當(dāng)前映射到指定值時才替換指定鍵的條目。

指定者:

在接口 MapK,V 中替換

參數(shù):

參數(shù)名稱 參數(shù)描述
key 與指定值關(guān)聯(lián)的鍵
oldValue 預(yù)期與指定鍵關(guān)聯(lián)的值
newValue 與指定鍵關(guān)聯(lián)的值

返回:

如果值被替換,則為 true

replace

public V replace(K key, V value)

從接口復(fù)制的描述:map

僅當(dāng)當(dāng)前映射到某個值時才替換指定鍵的條目。

指定者:

在接口 MapK,V 中替換

參數(shù):

參數(shù)名稱 參數(shù)描述
key 與指定值關(guān)聯(lián)的鍵
value 與指定鍵關(guān)聯(lián)的值

返回:

與指定鍵關(guān)聯(lián)的前一個值,如果鍵沒有映射,則返回 null。 (如果實現(xiàn)支持 null 值,則返回 null 還可以指示映射先前將 null 與鍵關(guān)聯(lián)。)

forEach

public void forEach(BiConsumer<? super K,? super V> action)

從接口復(fù)制的描述:map

對該映射中的每個條目執(zhí)行給定的操作,直到處理完所有條目或該操作引發(fā)異常。 除非實現(xiàn)類另有規(guī)定,否則按照條目集迭代的順序執(zhí)行動作(如果指定了迭代順序)。動作拋出的異常將轉(zhuǎn)發(fā)給調(diào)用者。

指定者:

接口 MapK,V 中的 forEach

參數(shù):

參數(shù)名稱 參數(shù)描述
action 為每個條目執(zhí)行的操作

replaceAll

public void replaceAll(BiFunction<? super K,? super V,? extends V> function)

從接口復(fù)制的描述:map

將每個條目的值替換為對該條目調(diào)用給定函數(shù)的結(jié)果,直到所有條目都已處理或該函數(shù)引發(fā)異常。 函數(shù)拋出的異常被轉(zhuǎn)發(fā)給調(diào)用者。

指定者:

接口 MapK,V 中的 replaceAll

參數(shù):

參數(shù)名稱 參數(shù)描述
function 應(yīng)用于每個條目的函數(shù)
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號