鴻蒙OS NavigableSet

2022-06-29 18:01 更新

NavigableSet

public interface NavigableSet<E>
extends SortedSet<E>

使用導(dǎo)航方法擴(kuò)展的 SortedSet,報(bào)告給定搜索目標(biāo)的最接近匹配。方法lower、floor、ceiling和higher分別返回小于、小于或等于、大于或等于和大于給定元素的元素,如果沒有這樣的元素則返回null??梢园瓷蚧蚪敌蛟L問和遍歷 NavigableSet。 descendingSet 方法返回集合的視圖,其中所有關(guān)系和方向方法的意義都被反轉(zhuǎn)了。上升的操作和視圖的性能可能比下降的快。此接口還定義了 pollFirst 和 pollLast 方法,它們返回和刪除最低和最高元素,如果存在,則返回 null。方法 subSet、headSet 和 tailSet 與類似命名的 SortedSet 方法的不同之處在于接受描述下限和上限是包含還是排除的附加參數(shù)。任何 NavigableSet 的子集都必須實(shí)現(xiàn) NavigableSet 接口。

在允許空元素的實(shí)現(xiàn)中,導(dǎo)航方法的返回值可能不明確。 然而,即使在這種情況下,結(jié)果也可以通過檢查 contains(null) 來消除歧義。 為避免此類問題,鼓勵(lì)此接口的實(shí)現(xiàn)不允許插入空元素。 (請(qǐng)注意,Comparable 元素的排序集本質(zhì)上不允許為空。)

方法 subSet(E, E)、headSet(E) 和 tailSet(E) 被指定返回 SortedSet 以允許對(duì) SortedSet 的現(xiàn)有實(shí)現(xiàn)進(jìn)行兼容改造以實(shí)現(xiàn) NavigableSet,但鼓勵(lì)此接口的擴(kuò)展和實(shí)現(xiàn)覆蓋這些方法 返回 NavigableSet。

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

方法總結(jié)

修飾符和類型 方法 描述
E ceiling(E e) 返回此集合中大于或等于給定元素的最小元素,如果沒有這樣的元素,則返回 null。
IteratorE descendingIterator() 按降序返回此集合中元素的迭代器。
NavigableSetE descendingSet() 返回此集合中包含的元素的逆序視圖。
E floor(E e) 返回此集合中小于或等于給定元素的最大元素,如果沒有這樣的元素,則返回 null。
SortedSetE headSet(E toElement) 返回此集合中元素嚴(yán)格小于 toElement 的部分的視圖。
NavigableSetE headSet(E toElement, boolean inclusive) 返回此集合中元素小于(或等于,如果 inclusive 為true)toElement 的部分的視圖。
E higher(E e) 返回此集合中嚴(yán)格大于給定元素的最小元素,如果沒有這樣的元素,則返回 null。
IteratorE iterator() 按升序返回此集合中元素的迭代器。
E lower(E e) 返回此集合中嚴(yán)格小于給定元素的最大元素,如果沒有這樣的元素,則返回 null。
E pollFirst() 檢索并刪除第一個(gè)(最低)元素,如果此集合為空,則返回 null。
E pollLast() 檢索并刪除最后一個(gè)(最高)元素,如果此集合為空,則返回 null。
NavigableSetE subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) 返回此集合的一部分的視圖,其元素范圍從 fromElement 到 toElement。
SortedSetE subSet(E fromElement, E toElement) 返回此集合部分的視圖,其元素范圍從 fromElement(包括)到 toElement(不包括)。
SortedSetE tailSet(E fromElement) 返回此集合中元素大于或等于 fromElement 的部分的視圖。
NavigableSetE tailSet(E fromElement, boolean inclusive) 返回此集合中元素大于(或等于,如果 inclusive 為true)fromElement 的部分的視圖。
從接口 java.util.Collection 繼承的方法
parallelStream, removeIf, stream
從接口 java.lang.Iterable 繼承的方法
forEach
從接口 java.util.Set 繼承的方法
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll, size, toArray, toArray
從接口 java.util.SortedSet 繼承的方法
comparator, first, last, spliterator

方法詳情

lower

E lower(E e)

返回此集合中嚴(yán)格小于給定元素的最大元素,如果沒有這樣的元素,則返回 null。

參數(shù):

參數(shù)名稱 參數(shù)描述
e 要匹配的值

返回:

小于 e 的最大元素,如果沒有這樣的元素,則為 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定元素不能與集合中當(dāng)前的元素進(jìn)行比較
NullPointerException 如果指定元素為空且此集合不允許空元素

floor

E floor(E e)

返回此集合中小于或等于給定元素的最大元素,如果沒有這樣的元素,則返回 null。

參數(shù):

參數(shù)名稱 參數(shù)描述
e 要匹配的值

返回:

小于或等于 e 的最大元素,如果沒有這樣的元素,則返回 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定元素不能與集合中當(dāng)前的元素進(jìn)行比較
NullPointerException 如果指定元素為空且此集合不允許空元素

ceiling

E ceiling(E e)

返回此集合中大于或等于給定元素的最小元素,如果沒有這樣的元素,則返回 null。

參數(shù):

參數(shù)名稱 參數(shù)描述
e 要匹配的值

返回:

大于或等于 e 的最小元素,如果沒有這樣的元素,則返回 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定元素不能與集合中當(dāng)前的元素進(jìn)行比較
NullPointerException 如果指定元素為空且此集合不允許空元素

higher

E higher(E e)

返回此集合中嚴(yán)格大于給定元素的最小元素,如果沒有這樣的元素,則返回 null。

參數(shù):

參數(shù)名稱 參數(shù)描述
e 要匹配的值

返回:

大于 e 的最小元素,如果沒有這樣的元素,則返回 null

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定元素不能與集合中當(dāng)前的元素進(jìn)行比較
NullPointerException 如果指定元素為空且此集合不允許空元素

pollFirst

E pollFirst()

檢索并刪除第一個(gè)(最低)元素,如果此集合為空,則返回 null。

返回:

第一個(gè)元素,如果此集合為空,則返回 null

pollLast

E pollLast()

檢索并刪除最后一個(gè)(最高)元素,如果此集合為空,則返回 null。

返回:

最后一個(gè)元素,如果此集合為空,則返回 null

iterator

IteratorE iterator()

按升序返回此集合中元素的迭代器。

指定者:

接口 CollectionE 中的迭代器

指定者:

接口 IterableE 中的迭代器

指定者:

接口 SetE 中的迭代器

返回:

此集合中元素的迭代器,按升序排列

descendingSet

NavigableSetE descendingSet()

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

返回的集合具有等價(jià)于 Collections#reverseOrder(Comparator)(comparator()) 的排序。 表達(dá)式 s.descendingSet().descendingSet() 返回一個(gè)與 s 基本等價(jià)的 s 視圖。

返回:

該集合的逆序視圖

descendingIterator

IteratorE descendingIterator()

按降序返回此集合中元素的迭代器。 等效于descendingSet().iterator()。

返回:

此集合中元素的迭代器,按降序排列

subSet

NavigableSetE subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)

返回此集合的一部分的視圖,其元素范圍從 fromElement 到 toElement。 如果 fromElement 和 toElement 相等,則返回的集合為空,除非 fromInclusive 和 toInclusive 都為true。 返回的集合由該集合支持,因此返回集合中的更改會(huì)反映在該集合中,反之亦然。 返回的集合支持該集合支持的所有可選集合操作。

返回的集合將在嘗試插入超出其范圍的元素時(shí)拋出 IllegalArgumentException。

參數(shù):

參數(shù)名稱 參數(shù)描述
fromElement 返回集的低端點(diǎn)
fromInclusive 如果要在返回的視圖中包含低端點(diǎn),則為 true
toElement 返回集的高端點(diǎn)
toInclusive 如果要在返回的視圖中包含高端端點(diǎn),則為 true

返回:

此集合的一部分的視圖,其元素范圍從 fromElement(包括)到 toElement(不包括)

Throws:

Throw名稱 Throw描述
ClassCastException 如果 fromElement 和 toElement 不能使用該集合的比較器相互比較(或者,如果該集合沒有比較器,則使用自然排序)。 如果 fromElement 或 toElement 無法與集合中當(dāng)前的元素進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 fromElement 或 toElement 為 null 并且此集合不允許 null 元素
IllegalArgumentException 如果 fromElement 大于 toElement; 或者如果此集合本身具有受限范圍,并且 fromElement 或 toElement 位于范圍的范圍之外。

headSet

NavigableSetE headSet(E toElement, boolean inclusive)

返回此集合中元素小于(或等于,如果 inclusive 為true)toElement 的部分的視圖。 返回的集合由該集合支持,因此返回集合中的更改會(huì)反映在該集合中,反之亦然。 返回的集合支持該集合支持的所有可選集合操作。

返回的集合將在嘗試插入超出其范圍的元素時(shí)拋出 IllegalArgumentException。

參數(shù):

參數(shù)名稱 參數(shù)描述
toElement 返回集的高端點(diǎn)
inclusive 如果要在返回的視圖中包含高端端點(diǎn),則為 true

返回:

此集合的一部分的視圖,其元素小于(或等于,如果 inclusive 為真)toElement

Throws:

Throw名稱 Throw描述
ClassCastException 如果 toElement 與該集合的比較器不兼容(或者,如果該集合沒有比較器,如果 toElement 沒有實(shí)現(xiàn) Comparable)。 如果 toElement 無法與集合中的當(dāng)前元素進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 toElement 為 null 并且此集合不允許 null 元素
IllegalArgumentException 如果這個(gè)集合本身有一個(gè)限制范圍,并且 toElement 位于范圍的范圍之外

tailSet

NavigableSetE tailSet(E fromElement, boolean inclusive)

返回此集合中元素大于(或等于,如果 inclusive 為true)fromElement 的部分的視圖。 返回的集合由該集合支持,因此返回集合中的更改會(huì)反映在該集合中,反之亦然。 返回的集合支持該集合支持的所有可選集合操作。

返回的集合將在嘗試插入超出其范圍的元素時(shí)拋出 IllegalArgumentException。

參數(shù):

參數(shù)名稱 參數(shù)描述
fromElement 返回集的低端點(diǎn)
inclusive 如果要在返回的視圖中包含低端點(diǎn),則為 true

返回:

此集合中元素大于或等于 fromElement 的部分的視圖

Throws:

Throw名稱 Throw描述
ClassCastException 如果 fromElement 與這個(gè)集合的比較器不兼容(或者,如果集合沒有比較器,如果 fromElement 沒有實(shí)現(xiàn) Comparable)。 如果無法將 fromElement 與當(dāng)前集合中的元素進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 fromElement 為 null 并且此集合不允許 null 元素
IllegalArgumentException 如果此集合本身具有受限范圍,并且 fromElement 位于范圍的范圍之外

subSet

SortedSetE subSet(E fromElement, E toElement)

返回此集合部分的視圖,其元素范圍從 fromElement(包括)到 toElement(不包括)。 (如果 fromElement 和 toElement 相等,則返回的集合為空。)返回的集合由該集合支持,因此返回集合中的更改會(huì)反映在該集合中,反之亦然。 返回的集合支持該集合支持的所有可選集合操作。

返回的集合將在嘗試插入超出其范圍的元素時(shí)拋出 IllegalArgumentException。

等效于 subSet(fromElement, true, toElement, false)。

指定者:

接口 SortedSetE 中的子集

參數(shù):

參數(shù)名稱 參數(shù)描述
fromElement 返回集的低端點(diǎn)(包括)
toElement 返回集的高端點(diǎn)(不包括)

返回:

此集合的一部分的視圖,其元素范圍從 fromElement(包括)到 toElement(不包括)

Throws:

Throw名稱 Throw描述
ClassCastException 如果 fromElement 和 toElement 不能使用該集合的比較器相互比較(或者,如果該集合沒有比較器,則使用自然排序)。 如果 fromElement 或 toElement 無法與集合中當(dāng)前的元素進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 fromElement 或 toElement 為 null 并且此集合不允許 null 元素
IllegalArgumentException 如果 fromElement 大于 toElement; 或者如果這個(gè)集合本身有一個(gè)受限制的范圍,并且 fromElement 或 toElement 位于范圍的范圍之外

headSet

SortedSetE headSet(E toElement)

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

返回的集合將在嘗試插入超出其范圍的元素時(shí)拋出 IllegalArgumentException。

等效于 headSet(toElement, false)。

指定者:

接口 SortedSetE 中的 headSet

參數(shù):

參數(shù)名稱 參數(shù)描述
toElement 返回集的高端點(diǎn)(不包括)

返回:

此集合中元素嚴(yán)格小于 toElement 的部分的視圖

Throws:

Throw名稱 Throw描述
ClassCastException 如果 toElement 與該集合的比較器不兼容(或者,如果該集合沒有比較器,如果 toElement 沒有實(shí)現(xiàn) Comparable)。 如果 toElement 無法與集合中的當(dāng)前元素進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 toElement 為 null 并且此集合不允許 null 元素
IllegalArgumentException 如果這個(gè)集合本身有一個(gè)限制范圍,并且 toElement 位于范圍的范圍之外

tailSet

SortedSetE tailSet(E fromElement)

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

返回的集合將在嘗試插入超出其范圍的元素時(shí)拋出 IllegalArgumentException。

等價(jià)于tailSet(fromElement, true)。

指定者:

接口 SortedSetE 中的 tailSet

參數(shù):

參數(shù)名稱 參數(shù)描述
fromElement 返回集的低端點(diǎn)(包括)

返回:

此集合中元素大于或等于 fromElement 的部分的視圖

Throws:

Throw名稱 Throw描述
ClassCastException 如果 fromElement 與這個(gè)集合的比較器不兼容(或者,如果集合沒有比較器,如果 fromElement 沒有實(shí)現(xiàn) Comparable)。 如果無法將 fromElement 與當(dāng)前集合中的元素進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。
NullPointerException 如果 fromElement 為 null 并且此集合不允許 null 元素
IllegalArgumentException 如果此集合本身具有受限范圍,并且 fromElement 位于范圍的范圍之外
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)