JavaTM 2 Platform
Standard Ed. 6

java.util
介面 SortedSet<E>

型別參數:
E - 此 set 維護的元素的型別
所有父級介面:
Collection<E>, Iterable<E>, Set<E>
所有已知子介面:
NavigableSet<E>
所有已知實作類別:
ConcurrentSkipListSet, TreeSet

public interface SortedSet<E>
extends Set<E>

進一步提供關於元素的總體排序Set。這些元素使用其自然順序進行排序,或者根據通常在創建有序 set 時提供的 Comparator 進行排序。該 set 的迭代器將按元素升序遍歷 set。提供了一些附加的操作來利用這種排序。(此介面是 SortedMap 的 set 對應介面)。

插入有序 set 的所有元素都必須實作 Comparable 介面(或者被指定的比較器所接受)。另外,所有這些元素都必須是可互相比較的:對於有序 set 中的任意兩個元素 e1e2,執行 e1.compareTo(e2)(或 comparator.compare(e1, e2))都不得拋出 ClassCastException。試圖違反此限制將導致違反規則的方法或者建構子調用拋出 ClassCastException

注意,如果有序 set 要正確實作 Set 介面,則有序 set 所維持的順序(無論是否提供了明確的比較器)都必須與 equals 一致。(有關與 equals 一致 的精確定義,請參閱 Comparable 介面或 Comparator 介面。)這是因為 Set 介面是按照 equals 操作定義的,但有序 set 使用它的 compareTo(或 compare)方法對所有元素進行比較,因此從有序 set 的角度來看,此方法認為相等的兩個元素就是相等的。即使順序與 equals 不一致,有序 set 的行為仍然 定義良好的,只不過沒有遵守 Set 介面的常規協定。

所有通用有序 set 實作類別都應該提供 4 個「標準」建構子:1) void(無參數)建構子,它創建一個空的有序 set,按照元素的自然順序進行排序。2) 帶有一個 Comparator 型別參數的建構子,它創建一個空的有序 set,根據指定的比較器進行排序。3) 帶有一個 Collection 型別參數的建構子,它創建一個新的有序 set,其元素與參數相同,按照元素的自然順序進行排序。4) 帶有一個 SortedSet 型別參數的建構子,它創建一個新的有序 set,其元素和排序方法與輸入的有序 set 相同。無法保證強制實施此建議,因為介面不能包含建構子。

註:一些方法返回具有受限範圍的子集。這些範圍區間是半開的,也就是說,它們包括低端點,但不包括高端點(如果適用)。如果需要一個閉區間(同時包含兩個端點),且元素型別允許計算給定值的後繼值,則只需要請求從 lowEndpointsuccessor(highEndpoint) 的子區間。例如,假設 s 是一個字元串有序 set。下面的語句將得到一個套件含 s 中從 lowhigh(包括)所有字元串的視圖:

   SortedSet<String> sub = s.subSet(low, high+"\0");
可使用類似的技術產生開區間(兩個端點都不包括)。下面的語句得到包含 s 中從 lowhigh(不包括)所有字元串的視圖:
   SortedSet<String> sub = s.subSet(low+"\0", high);

此介面是 Java Collections Framework 的成員。

從以下版本開始:
1.2
另請參見:
Set, TreeSet, SortedMap, Collection, Comparable, Comparator, ClassCastException

方法摘要
 Comparator<? super E> comparator()
          返回對此 set 中的元素進行排序的比較器;如果此 set 使用其元素的自然順序,則返回 null
 E first()
          返回此 set 中當前第一個(最低)元素。
 SortedSet<E> headSet(E toElement)
          返回此 set 的部分視圖,其元素嚴格小於 toElement
 E last()
          返回此 set 中當前最後一個(最高)元素。
 SortedSet<E> subSet(E fromElement, E toElement)
          返回此 set 的部分視圖,其元素從 fromElement(包括)到 toElement(不包括)。
 SortedSet<E> tailSet(E fromElement)
          返回此 set 的部分視圖,其元素大於等於 fromElement
 
從介面 java.util.Set 繼承的方法
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

方法詳細資訊

comparator

Comparator<? super E> comparator()
返回對此 set 中的元素進行排序的比較器;如果此 set 使用其元素的自然順序,則返回 null

返回:
用來對此 set 中的元素進行排序的比較器;如果此 set 使用其元素的自然順序,則返回 null

subSet

SortedSet<E> subSet(E fromElement,
                    E toElement)
返回此 set 的部分視圖,其元素從 fromElement(包括)到 toElement(不包括)。(如果 fromElementtoElement 相等,則返回空的 set)。返回的 set 受此 set 支持,所以在返回 set 中的更改將反映在此 set 中,反之亦然。返回的 set 支持此 set 支持的所有可選 set 操作。

如果試圖在返回 set 的範圍之外插入元素,則返回的 set 將拋出 IllegalArgumentException

參數:
fromElement - 返回 set 的低端點(包括)
toElement - 返回 set 的高端點(不包括)
返回:
此 set 的部分視圖,其元素的範圍從 fromElement(包括)到 toElement(不包括)
拋出:
ClassCastException - 如果無法使用此 set 的比較器(如果 set 沒有比較器,則使用自然順序)比較 fromElementtoElement。如果 fromElementtoElement 不能與 set 中的當前元素進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 fromElementtoElement 為 null,並且此 set 不允許 null 元素
IllegalArgumentException - 如果 fromElement 大於 toElement;如果此 set 本身有範圍限制,並且 fromElementtoElement 位於範圍的邊界之外

headSet

SortedSet<E> headSet(E toElement)
返回此 set 的部分視圖,其元素嚴格小於 toElement。返回的 set 受此 set 支持,所以在返回 set 中的更改將反映在此 set 中,反之亦然。返回的 set 支持此 set 支持的所有可選 set 操作。

如果試圖在返回 set 的範圍之外插入元素,則返回的 set 將拋出 IllegalArgumentException

參數:
toElement - 返回 set 的高端點(不包括)
返回:
此 set 的部分視圖,其元素嚴格小於 toElement
拋出:
ClassCastException - 如果 toElement 與此 set 的比較器不相容(如果 set 沒有比較器;如果 toElement 沒有實作 Comparable)。如果 toElement 不能與 set 中的當前元素進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 toElement 為 null,並且此 set 不允許 null 元素
IllegalArgumentException - 如果此 set 本身有範圍限制,並且 toElement 位於範圍的邊界之外

tailSet

SortedSet<E> tailSet(E fromElement)
返回此 set 的部分視圖,其元素大於等於 fromElement。返回的 set 受此 set 支持,所以在返回 set 中的更改將反映在此 set 中,反之亦然。返回的 set 支持此 set 支持的所有可選 set 操作。

如果試圖在返回 set 的範圍之外插入元素,則返回的 set 將拋出 IllegalArgumentException

參數:
fromElement - 返回 set 的低端點(包括)
返回:
此 set 的部分視圖,其元素大於等於 fromElement
拋出:
ClassCastException - 如果 fromElement 與此 set 的比較器不相容(如果 set 沒有比較器;如果 fromElement 沒有實作 Comparable)。如果 fromElement 不能與 set 中的當前元素進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 fromElement 為 null,並且此 set 不允許 null 元素
IllegalArgumentException - 如果此 set 本身有範圍限制,並且 fromElement 位於範圍的邊界之外

first

E first()
返回此 set 中當前第一個(最低)元素。

返回:
此 set 中當前第一個(最低)元素
拋出:
NoSuchElementException - 如果此 set 為空

last

E last()
返回此 set 中當前最後一個(最高)元素。

返回:
此 set 中當前最後一個(最高)元素
拋出:
NoSuchElementException - 如果此 set 為空

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only