鴻蒙OS NavigableMap

2022-06-29 17:34 更新

NavigableMap

public interface NavigableMap<K,V>
extends SortedMap<K,V>

使用navigation方法擴(kuò)展的 SortedMap,返回給定搜索目標(biāo)的最接近匹配項(xiàng)。 方法lowerEntry、floorEntry、ceilingEntry和higherEntry分別返回與鍵關(guān)聯(lián)的Map.Entry對(duì)象小于、小于或等于、大于或等于、大于給定鍵,如果沒(méi)有該鍵則返回null。 類(lèi)似地,方法lowerKey、floorKey、ceilingKey 和higherKey 僅返回關(guān)聯(lián)的鍵。 所有這些方法都是為定位而不是遍歷條目而設(shè)計(jì)的。

可以按升序或降序鍵順序訪問(wèn)和遍歷 NavigableMap。 descendingMap 方法返回一個(gè)map視圖,其中所有關(guān)系和方向方法的意義都顛倒了。 上升的操作和視圖的性能可能比下降的快。 方法 subMap、headMap 和 tailMap 與類(lèi)似命名的 SortedMap 方法的不同之處在于接受描述下限和上限是包含還是排除的附加參數(shù)。 任何 NavigableMap 的子圖都必須實(shí)現(xiàn) NavigableMap 接口。

此接口還定義了方法 firstEntry、pollFirstEntry、lastEntry 和 pollLastEntry,它們返回和/或刪除最小和最大映射(如果存在),否則返回 null。

條目返回方法的實(shí)現(xiàn)應(yīng)返回 Map.Entry 對(duì),表示映射在生成時(shí)的快照,因此通常不支持可選的 Entry.setValue 方法。 但是請(qǐng)注意,可以使用 put 方法更改關(guān)聯(lián)映射中的映射。

方法 subMap(K, K)、headMap(K) 和 tailMap(K) 指定返回 SortedMap 以允許對(duì) SortedMap 的現(xiàn)有實(shí)現(xiàn)進(jìn)行兼容改進(jìn)以實(shí)現(xiàn) NavigableMap,但鼓勵(lì)此接口的擴(kuò)展和實(shí)現(xiàn)覆蓋這些方法 返回 NavigableMap。 同樣,可以重寫(xiě) SortedMap.keySet() 以返回 NavigableSet。

此接口是 Java 集合框架的成員。

嵌套類(lèi)摘要

從接口 java.util.Map 繼承的嵌套類(lèi)/接口
Map.Entry<K,V>

方法總結(jié)

修飾符和類(lèi)型 方法 描述
Map.Entry<K,V> ceilingEntry(K key) 返回與大于或等于給定鍵的最小鍵關(guān)聯(lián)的鍵值映射,如果沒(méi)有這樣的鍵,則返回 null。
K ceilingKey(K key) 返回大于或等于給定鍵的最小鍵,如果沒(méi)有這樣的鍵,則返回 null。
NavigableSetK descendingKeySet() 返回此映射中包含的鍵的逆序 NavigableSet 視圖。
NavigableMapK,V descendingMap() 返回此映射中包含的映射的逆序視圖。
Map.EntryK,V firstEntry() 返回與此映射中的最小鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。
Map.EntryK,V floorEntry(K key) 返回與小于或等于給定鍵的最大鍵關(guān)聯(lián)的鍵值映射,如果沒(méi)有這樣的鍵,則返回 null。
K floorKey(K key) 返回小于或等于給定鍵的最大鍵,如果沒(méi)有這樣的鍵,則返回 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)的鍵值映射,如果沒(méi)有這樣的鍵,則返回 null。
K higherKey(K key) 返回嚴(yán)格大于給定鍵的最小鍵,如果沒(méi)有這樣的鍵,則返回 null。
Map.EntryK,V lastEntry() 返回與此映射中最大鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。
Map.EntryK,V lowerEntry(K key) 返回與嚴(yán)格小于給定鍵的最大鍵關(guān)聯(lián)的鍵值映射,如果沒(méi)有這樣的鍵,則返回 null。
K lowerKey(K key) 返回嚴(yán)格小于給定鍵的最大鍵,如果沒(méi)有這樣的鍵,則返回 null。
NavigableSetK navigableKeySet() 返回此map中包含的鍵的 NavigableSet 視圖。
Map.EntryK,V pollFirstEntry() 移除并返回與此映射中最小鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。
Map.EntryK,V pollLastEntry() 刪除并返回與此映射中最大鍵關(guān)聯(lián)的鍵值映射,如果映射為空,則返回 null。
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) 返回此map部分的視圖,其鍵大于或等于 fromKey。
NavigableMapK,V tailMap(K fromKey, boolean inclusive) 返回此映射部分的視圖,其鍵大于(或等于,如果 inclusive 為真)fromKey。
從接口 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
從接口 java.util.SortedMap 繼承的方法
comparator, entrySet, firstKey, keySet, lastKey, values

方法詳情

lowerEntry

Map.EntryK,V lowerEntry(K key)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
key

返回:

最大鍵小于鍵的條目,如果沒(méi)有這樣的鍵,則返回 null

Throws:

Throw名稱(chēng) Throw描述
ClassCastException 如果指定的鍵無(wú)法與map中當(dāng)前的鍵進(jìn)行比較
NullPointerException 如果指定的鍵為空并且此映射不允許空鍵

lowerKey

K lowerKey(K key)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
key

返回:

小于 key 的最大鍵,如果沒(méi)有這樣的鍵,則為 null

Throws:

Throw名稱(chēng) Throw描述
ClassCastException 如果指定的鍵無(wú)法與map中當(dāng)前的鍵進(jìn)行比較
NullPointerException 如果指定的鍵為空并且此映射不允許空鍵

floorEntry

Map.EntryK,V floorEntry(K key)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
key

返回:

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

Throws:

Throw名稱(chēng) Throw描述
ClassCastException 如果指定的鍵無(wú)法與map中當(dāng)前的鍵進(jìn)行比較
NullPointerException 如果指定的鍵為空并且此映射不允許空鍵

floorKey

K floorKey(K key)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
key

返回:

小于或等于 key 的最大鍵,如果沒(méi)有這樣的鍵,則為 null

Throws:

Throw名稱(chēng) Throw描述
ClassCastException 如果指定的鍵無(wú)法與map中當(dāng)前的鍵進(jìn)行比較
NullPointerException 如果指定的鍵為空并且此映射不允許空鍵

ceilingEntry

Map.EntryK,V ceilingEntry(K key)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
key

返回:

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

Throws:

Throw名稱(chēng) Throw描述
ClassCastException 如果指定的鍵無(wú)法與map中當(dāng)前的鍵進(jìn)行比較
NullPointerException 如果指定的鍵為空并且此映射不允許空鍵

ceilingKey

K ceilingKey(K key)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
key

返回:

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

Throws:

Throw名稱(chēng) Throw描述
ClassCastException 如果指定的鍵無(wú)法與map中當(dāng)前的鍵進(jìn)行比較
NullPointerException 如果指定的鍵為空并且此映射不允許空鍵

higherEntry

Map.EntryK,V higherEntry(K key)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
key

返回:

最小鍵大于鍵的條目,如果沒(méi)有這樣的鍵,則返回 null

Throws:

Throw名稱(chēng) Throw描述
ClassCastException 如果指定的鍵無(wú)法與map中當(dāng)前的鍵進(jìn)行比較
NullPointerException 如果指定的鍵為空并且此映射不允許空鍵

higherKey

K higherKey(K key)

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

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
key

返回:

大于 key 的最小鍵,如果沒(méi)有這樣的鍵,則返回 null

Throws:

Throw名稱(chēng) Throw描述
ClassCastException 如果指定的鍵無(wú)法與map中當(dāng)前的鍵進(jìn)行比較
NullPointerException 如果指定的鍵為空并且此映射不允許空鍵

firstEntry

Map.EntryK,V firstEntry()

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

返回:

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

lastEntry

Map.EntryK,V lastEntry()

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

返回:

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

pollFirstEntry

Map.EntryK,V pollFirstEntry()

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

返回:

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

pollLastEntry

Map.EntryK,V pollLastEntry()

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

返回:

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

descendingMap

NavigableMapK,V descendingMap()

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

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

返回:

此map的逆序視圖

navigableKeySet

NavigableSetK navigableKeySet()

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

返回:

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

descendingKeySet

NavigableSetK descendingKeySet()

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

返回:

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

subMap

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

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

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

參數(shù):

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

返回:

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

Throws:

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

headMap

NavigableMapK,V headMap(K toKey, boolean inclusive)

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

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

參數(shù):

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

返回:

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

Throws:

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

tailMap

NavigableMapK,V tailMap(K fromKey, boolean inclusive)

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

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

參數(shù):

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

返回:

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

Throws:

Throw名稱(chēng) Throw描述
ClassCastException 如果 fromKey 與此映射的比較器不兼容(或者,如果映射沒(méi)有比較器,如果 fromKey 未實(shí)現(xiàn) Comparable)。 如果無(wú)法將 fromKey 與當(dāng)前映射中的鍵進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 fromKey 為空且此映射不允許空鍵
IllegalArgumentException 如果此map本身具有限制范圍,并且 fromKey 位于范圍范圍之外

subMap

SortedMapK,V subMap(K fromKey, K toKey)

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

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

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

指定者:

接口 SortedMapK,V 中的 subMap

參數(shù):

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

返回:

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

Throws:

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

headMap

SortedMapK,V headMap(K toKey)

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

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

等效于 headMap(toKey, false)。

指定者:

接口 SortedMapK,V 中的 headMap

參數(shù):

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

返回:

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

Throws:

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

tailMap

SortedMapK,V tailMap(K fromKey)

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

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

等價(jià)于tailMap(fromKey, true)。

指定者:

接口 SortedMapK,V 中的 tailMap

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
fromKey 返回映射中鍵的低端點(diǎn)(包括)

返回:

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

Throws:

Throw名稱(chēng) Throw描述
ClassCastException 如果 fromKey 與此映射的比較器不兼容(或者,如果映射沒(méi)有比較器,如果 fromKey 未實(shí)現(xiàn) Comparable)。 如果無(wú)法將 fromKey 與當(dāng)前映射中的鍵進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 fromKey 為空且此映射不允許空鍵
IllegalArgumentException 如果此map本身具有限制范圍,并且 fromKey 位于范圍范圍之外
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)