新聞中心
SortedSet

public interface SortedSet
extends Set 進(jìn)一步提供對(duì)其元素的總排序的 Set。 元素使用它們的 Comparable 排序,或者由通常在排序集創(chuàng)建時(shí)提供的 Comparator 排序。 集合的迭代器將按元素升序遍歷集合。 提供了幾個(gè)額外的操作來(lái)利用排序。 (這個(gè)接口是 SortedMap 的集合類似物。)
插入有序集合的所有元素都必須實(shí)現(xiàn) Comparable 接口(或被指定的比較器接受)。 此外,所有此類元素必須相互比較:e1.compareTo(e2)(或comparator.compare(e1, e2))不得為排序集中的任何元素e1 和e2 拋出ClassCastException。 嘗試違反此限制將導(dǎo)致有問(wèn)題的方法或構(gòu)造函數(shù)調(diào)用拋出 ClassCastException。
請(qǐng)注意,如果有序集合要正確實(shí)現(xiàn) Set 接口,則由有序集合維護(hù)的排序(無(wú)論是否提供顯式比較器)必須與 equals 一致。這是因?yàn)?Set 接口是根據(jù)等于操作定義的,但排序集使用其 compareTo(或比較)方法執(zhí)行所有元素比較 ,因此從排序集的角度來(lái)看,此方法認(rèn)為相等的兩個(gè)元素是相等的。 一個(gè)有序集合的行為是明確定義的,即使它的排序與equals不一致; 它只是不遵守 Set 接口的一般約定。
所有通用排序集實(shí)現(xiàn)類都應(yīng)提供四個(gè)“標(biāo)準(zhǔn)”構(gòu)造函數(shù): 1) 一個(gè) void(無(wú)參數(shù))構(gòu)造函數(shù),它創(chuàng)建一個(gè)空排序集,根據(jù)其元素的自然順序排序。 2) 具有 Comparator 類型的單個(gè)參數(shù)的構(gòu)造函數(shù),它創(chuàng)建一個(gè)空的排序集,根據(jù)指定的比較器排序。 3) 一個(gè)具有單個(gè) Collection 類型參數(shù)的構(gòu)造函數(shù),它創(chuàng)建一個(gè)新的排序集,其元素與其參數(shù)相同,并根據(jù)元素的自然順序進(jìn)行排序。 4) 具有類型為 SortedSet 的單個(gè)參數(shù)的構(gòu)造函數(shù),它創(chuàng)建一個(gè)具有與輸入排序集相同元素和相同順序的新排序集。 無(wú)法強(qiáng)制執(zhí)行此建議,因?yàn)榻涌诓荒馨瑯?gòu)造函數(shù)。
注意:一些方法返回具有受限范圍的子集。 這樣的范圍是半開(kāi)的,也就是說(shuō),它們包括它們的低端點(diǎn)但不包括它們的高端點(diǎn)(如果適用)。 如果您需要一個(gè)封閉范圍(包括兩個(gè)端點(diǎn)),并且元素類型允許計(jì)算給定值的后繼值,則只需請(qǐng)求從 lowEndpoint 到后繼值(highEndpoint)的子范圍。 例如,假設(shè) s 是一組已排序的字符串。 下面的成語(yǔ)獲得了一個(gè)視圖,該視圖包含 s 中從低到高的所有字符串,包括:
SortedSet sub = s.subSet(low, high+"\0"); 類似的技術(shù)可用于生成開(kāi)放范圍(不包含端點(diǎn))。 下面的語(yǔ)句獲得了一個(gè)視圖,該視圖包含了 s 中從低到高的所有字符串,排他性的:
SortedSet sub = s.subSet(low+"\0", high); 此接口是 Java 集合框架的成員。
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| Comparator super E> | comparator() | 返回用于對(duì)該 set 中的元素進(jìn)行排序的比較器,如果此 set 使用其元素的 Comparable,則返回 null。 |
| E | first() | 返回此集合中當(dāng)前的第一個(gè)(最低)元素。 |
| SortedSetE | headSet(E toElement) | 返回此集合中元素嚴(yán)格小于 toElement 的部分的視圖。 |
| E | last() | 返回此集合中當(dāng)前的最后一個(gè)(最高)元素。 |
| default SpliteratorE | spliterator() | 在此排序集中的元素上創(chuàng)建一個(gè) Spliterator。 |
| SortedSetE | subSet(E fromElement, E toElement) | 返回此集合部分的視圖,其元素范圍從 fromElement(包括)到 toElement(不包括)。 |
| SortedSetE | tailSet(E fromElement) | 返回此集合中元素大于或等于 fromElement 的部分的視圖。 |
| 從接口 java.util.Collection 繼承的方法 |
|---|
| parallelStream, removeIf, stream |
| 從接口 java.lang.Iterable 繼承的方法 |
|---|
| forEach |
| 從接口 java.util.Set 繼承的方法 |
|---|
| add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray |
方法詳情
comparator
Comparator super E> comparator()
返回用于對(duì)該 set 中的元素進(jìn)行排序的比較器,如果此 set 使用其元素的 Comparable,則返回 null。
返回:
用于對(duì)該集合中的元素進(jìn)行排序的比較器,如果此集合使用其元素的自然排序,則為 null
subSet
SortedSetE subSet(E fromElement, E toElement)
返回此集合部分的視圖,其元素范圍從 fromElement(包括)到 toElement(不包括)。 (如果 fromElement 和 toElement 相等,則返回的集合為空。)返回的集合由該集合支持,因此返回集合中的更改會(huì)反映在該集合中,反之亦然。 返回的集合支持該集合支持的所有可選集合操作。
返回的集合將在嘗試插入超出其范圍的元素時(shí)拋出 IllegalArgumentException。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromElement | 返回集的低端點(diǎn)(包括) |
| toElement | 返回集的高端點(diǎn)(不包括) |
返回:
此集合的一部分的視圖,其元素范圍從 fromElement(包括)到 toElement(不包括)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果 fromElement 和 toElement 不能使用該集合的比較器相互比較(或者,如果該集合沒(méi)有比較器,則使用自然排序)。 如果 fromElement 或 toElement 無(wú)法與集合中當(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。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| toElement | 返回集的高端點(diǎn)(不包括) |
返回:
此集合中元素嚴(yán)格小于 toElement 的部分的視圖
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果 toElement 與該集合的比較器不兼容(或者,如果該集合沒(méi)有比較器,如果 toElement 沒(méi)有實(shí)現(xiàn) Comparable)。 如果 toElement 無(wú)法與集合中的當(dāng)前元素進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。 |
| NullPointerException | 如果 toElement 為 null 并且此集合不允許 null 元素 |
| IllegalArgumentException | 如果這個(gè)集合本身有一個(gè)限制范圍,并且 toElement 位于范圍的范圍之外 |
tailSet
SortedSetE tailSet(E fromElement)
返回此集合中元素大于或等于 fromElement 的部分的視圖。 返回的集合由該集合支持,因此返回集合中的更改會(huì)反映在該集合中,反之亦然。 返回的集合支持該集合支持的所有可選集合操作。
返回的集合將在嘗試插入超出其范圍的元素時(shí)拋出 IllegalArgumentException。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromElement | 返回集的低端點(diǎn)(包括) |
返回:
此集合中元素大于或等于 fromElement 的部分的視圖
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果 fromElement 與這個(gè)集合的比較器不兼容(或者,如果集合沒(méi)有比較器,如果 fromElement 沒(méi)有實(shí)現(xiàn) Comparable)。 如果無(wú)法將 fromElement 與當(dāng)前集合中的元素進(jìn)行比較,則實(shí)現(xiàn)可以但不是必須拋出此異常。 |
| NullPointerException | 如果 fromElement 為 null 并且此集合不允許 null 元素 |
| IllegalArgumentException | 如果此集合本身具有受限范圍,并且 fromElement 位于范圍的范圍之外 |
first
E first()
返回此集合中當(dāng)前的第一個(gè)(最低)元素。
返回:
當(dāng)前在此集合中的第一個(gè)(最低)元素
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NoSuchElementException | 如果這個(gè)集合是空的 |
last
E last()
返回此集合中當(dāng)前的最后一個(gè)(最高)元素。
返回:
當(dāng)前在此集合中的最后一個(gè)(最高)元素
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NoSuchElementException | 如果這個(gè)集合是空的 |
spliterator
default SpliteratorE spliterator()
在此排序集中的元素上創(chuàng)建一個(gè) Spliterator。
Spliterator 報(bào)告 Spliterator#DISTINCT、Spliterator#SORTED 和 Spliterator#ORDERED。 實(shí)施應(yīng)記錄附加特征值的報(bào)告。
如果排序集的比較器為空,則拆分器的比較器必須為空。 否則,拆分器的比較器必須與排序集的比較器相同或施加相同的總排序。
指定者:
接口 CollectionE 中的分離器
指定者:
接口 IterableE 中的分離器
指定者:
接口 SetE 中的分離器
返回:
在此排序集中的元素上的 Spliterator
當(dāng)前題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSSortedSet
瀏覽路徑:http://www.dlmjj.cn/article/dpojjje.html


咨詢
建站咨詢
