JavaTM 2 Platform
Standard Ed. 6

java.util.concurrent
類別 ConcurrentSkipListSet<E>

java.lang.Object
  繼承者 java.util.AbstractCollection<E>
      繼承者 java.util.AbstractSet<E>
          繼承者 java.util.concurrent.ConcurrentSkipListSet<E>
型別參數:
E - 此 set 維護的元素型別
所有已實作的介面:
Serializable, Cloneable, Iterable<E>, Collection<E>, NavigableSet<E>, Set<E>, SortedSet<E>

public class ConcurrentSkipListSet<E>
extends AbstractSet<E>
implements NavigableSet<E>, Cloneable, Serializable

一個基於 ConcurrentSkipListMap 的可縮放共時 NavigableSet 實作。set 的元素可以根據它們的自然順序進行排序,也可以根據創建 set 時所提供的 Comparator 進行排序,具體取決於使用的建構子。

此實作為 containsaddremove 操作及其變體提供預期平均 log(n) 時間開銷。多個執行緒可以安全地共時執行插入、移除和存取操作。迭代器是弱一致 的,返回的元素將反映迭代器創建時或創建後某一時刻的 set 狀態。它們 拋出 ConcurrentModificationException,可以共時處理其他操作。升序排序視圖及其迭代器比降序排序視圖及其迭代器更快。

請注意,與在大多數 collection 中不同,這裡的 size 方法不是 一個固定時間 (constant-time) 操作。由於這些 set 的非同步特性,確定元素的當前數目需要遍歷元素。此外,批量操作 addAllremoveAllretainAllcontainsAll 並不 保證能以原子方式 (atomically) 執行。例如,與 addAll 操作一起共時操作的迭代器只能查看某些附加元素。

此類別及其迭代器實作 SetIterator 介面的所有可選 方法。與大多數其他共時 collection 實作一樣,此類別不允許使用 null 元素,因為無法可靠地將 null 參數及返回值與不存在的元素區分開來。

此類別是 Java Collections Framework 的成員。

從以下版本開始:
1.6
另請參見:
序列化表格

建構子摘要
ConcurrentSkipListSet()
          建構一個新的空 set,該 set 按照元素的自然順序對其進行排序。
ConcurrentSkipListSet(Collection<? extends E> c)
          建構一個套件含指定 collection 中元素的新 set,這個新 set 按照元素的自然順序對其進行排序。
ConcurrentSkipListSet(Comparator<? super E> comparator)
          建構一個新的空 set,該 set 按照指定的比較器對其元素進行排序。
ConcurrentSkipListSet(SortedSet<E> s)
          建構一個新 set,該 set 所包含的元素與指定的有序 set 套件含的元素相同,使用的順序也相同。
 
方法摘要
 boolean add(E e)
          如果此 set 中不包含指定元素,則添加指定元素。
 E ceiling(E e)
          返回此 set 中大於等於給定元素的最小元素;如果不存在這樣的元素,則返回 null
 void clear()
          從此 set 中移除所有元素。
 ConcurrentSkipListSet<E> clone()
          返回此 ConcurrentSkipListSet 實例的淺表副本。
 Comparator<? super E> comparator()
          返回對此 set 中的元素進行排序的比較器;如果此 set 使用其元素的自然順序,則返回 null
 boolean contains(Object o)
          如果此 set 套件含指定的元素,則返回 true
 Iterator<E> descendingIterator()
          返回在此 set 的元素上以降序進行迭代的迭代器。
 NavigableSet<E> descendingSet()
          返回此 set 中所包含元素的逆序視圖。
 boolean equals(Object o)
          比較指定對象與此 set 的相等性。
 E first()
          返回此 set 中當前第一個(最低)元素。
 E floor(E e)
          返回此 set 中小於等於給定元素的最大元素;如果不存在這樣的元素,則返回 null
 NavigableSet<E> headSet(E toElement)
          返回此 set 的部分視圖,其元素嚴格小於 toElement
 NavigableSet<E> headSet(E toElement, boolean inclusive)
          返回此 set 的部分視圖,其元素小於(或等於,如果 inclusive 為 true)toElement
 E higher(E e)
          返回此 set 中嚴格大於給定元素的最小元素;如果不存在這樣的元素,則返回 null
 boolean isEmpty()
          如果此 set 不包含任何元素,則返回 true
 Iterator<E> iterator()
          返回在此 set 的元素上以升序進行迭代的迭代器。
 E last()
          返回此 set 中當前最後一個(最高)元素。
 E lower(E e)
          返回此 set 中嚴格小於給定元素的最大元素;如果不存在這樣的元素,則返回 null
 E pollFirst()
          獲取並移除第一個(最低)元素;如果此 set 為空,則返回 null
 E pollLast()
          獲取並移除最後一個(最高)元素;如果此 set 為空,則返回 null
 boolean remove(Object o)
          如果此 set 中存在指定的元素,則將其移除。
 boolean removeAll(Collection<?> c)
          從此 set 中移除包含在指定 collection 中的所有元素。
 int size()
          返回此 set 中的元素數目。
 NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
          返回此 set 的部分視圖,其元素範圍從 fromElementtoElement
 NavigableSet<E> subSet(E fromElement, E toElement)
          返回此 set 的部分視圖,其元素從 fromElement(包括)到 toElement(不包括)。
 NavigableSet<E> tailSet(E fromElement)
          返回此 set 的部分視圖,其元素大於等於 fromElement
 NavigableSet<E> tailSet(E fromElement, boolean inclusive)
          返回此 set 的部分視圖,其元素大於(或等於,如果 inclusive 為 true)fromElement
 
從類別 java.util.AbstractSet 繼承的方法
hashCode
 
從類別 java.util.AbstractCollection 繼承的方法
addAll, containsAll, retainAll, toArray, toArray, toString
 
從類別 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 
從介面 java.util.Set 繼承的方法
addAll, containsAll, hashCode, retainAll, toArray, toArray
 

建構子詳細資訊

ConcurrentSkipListSet

public ConcurrentSkipListSet()
建構一個新的空 set,該 set 按照元素的自然順序對其進行排序。


ConcurrentSkipListSet

public ConcurrentSkipListSet(Comparator<? super E> comparator)
建構一個新的空 set,該 set 按照指定的比較器對其元素進行排序。

參數:
comparator - 用於對此 set 進行排序的比較器。如果此參數為 null,則使用元素的自然順序

ConcurrentSkipListSet

public ConcurrentSkipListSet(Collection<? extends E> c)
建構一個套件含指定 collection 中元素的新 set,這個新 set 按照元素的自然順序對其進行排序。

參數:
c - 將組成新 set 的元素
拋出:
ClassCastException - 如果 c 中的元素不是 Comparable,或者無法相互比較
NullPointerException - 如果指定的 collection 或它的任何元素為 null

ConcurrentSkipListSet

public ConcurrentSkipListSet(SortedSet<E> s)
建構一個新 set,該 set 所包含的元素與指定的有序 set 套件含的元素相同,使用的順序也相同。

參數:
s - 有序 set,其元素將組成新的 set
拋出:
NullPointerException - 如果指定的有序 set 或它的任何元素為 null
方法詳細資訊

clone

public ConcurrentSkipListSet<E> clone()
返回此 ConcurrentSkipListSet 實例的淺表副本。(這些元素本身沒有複製。)

覆寫:
類別 Object 中的 clone
返回:
此 set 的淺表副本
另請參見:
Cloneable

size

public int size()
返回此 set 中的元素數目。如果此 set 套件含的元素數大於 Integer.MAX_VALUE,則返回 Integer.MAX_VALUE

請注意,與在大多數 collection 中不同,此方法在這裡不是 一個固定時間 (constant-time) 操作。由於這些 set 的非同步特性,確定元素的當前數目需要遍歷元素以計算其數目。此外,在執行此方法期間大小可能更改,在這種情況下,返回的結果將不準確。因此,此方法在共時應用程序中通常不是很有用。

指定者:
介面 Collection<E> 中的 size
指定者:
介面 Set<E> 中的 size
指定者:
類別 AbstractCollection<E> 中的 size
返回:
此 set 中的元素數

isEmpty

public boolean isEmpty()
如果此 set 不包含任何元素,則返回 true

指定者:
介面 Collection<E> 中的 isEmpty
指定者:
介面 Set<E> 中的 isEmpty
覆寫:
類別 AbstractCollection<E> 中的 isEmpty
返回:
如果此 set 不包含任何元素,則返回 true

contains

public boolean contains(Object o)
如果此 set 套件含指定的元素,則返回 true。更確切地講,當且僅當此 set 套件含一個滿足 o.equals(e) 的元素 e 時,返回 true

指定者:
介面 Collection<E> 中的 contains
指定者:
介面 Set<E> 中的 contains
覆寫:
類別 AbstractCollection<E> 中的 contains
參數:
o - 檢查是否包含在此 set 中的物件
返回:
如果此 set 套件含指定的元素,則返回 true
拋出:
ClassCastException - 如果指定的元素無法與此 set 中的當前元素進行比較
NullPointerException - 如果指定的元素為 null

add

public boolean add(E e)
如果此 set 中不包含指定元素,則添加指定元素。更確切地講,如果此 set 不包含滿足 e.equals(e2) 的元素 e2,則向 set 中添加指定的元素 e。如果此 set 已經包含該元素,則調用不更改該 set 並返回 false

指定者:
介面 Collection<E> 中的 add
指定者:
介面 Set<E> 中的 add
覆寫:
類別 AbstractCollection<E> 中的 add
參數:
e - 要添加到此 set 的元素
返回:
如果此 set 尚未包含指定的元素,則返回 true
拋出:
ClassCastException - 如果 e 無法與此 set 中的當前元素進行比較
NullPointerException - 如果指定的元素為 null

remove

public boolean remove(Object o)
如果此 set 中存在指定的元素,則將其移除。更確切地講,如果此 set 中包含滿足 o.equals(e) 的元素 e,則移除該元素。如果此 set 套件含該元素(或者此 set 由於調用而發生了更改),則返回 true。(一旦調用返回,則此 set 不再包含該元素。)

指定者:
介面 Collection<E> 中的 remove
指定者:
介面 Set<E> 中的 remove
覆寫:
類別 AbstractCollection<E> 中的 remove
參數:
o - 要從此 set 中移除的物件(如果存在)
返回:
如果此 set 中包含指定的元素,則返回 true
拋出:
ClassCastException - 如果 o 無法與此 set 中的當前元素進行比較
NullPointerException - 如果指定的元素為 null

clear

public void clear()
從此 set 中移除所有元素。

指定者:
介面 Collection<E> 中的 clear
指定者:
介面 Set<E> 中的 clear
覆寫:
類別 AbstractCollection<E> 中的 clear

iterator

public Iterator<E> iterator()
返回在此 set 的元素上以升序進行迭代的迭代器。

指定者:
介面 Iterable<E> 中的 iterator
指定者:
介面 Collection<E> 中的 iterator
指定者:
介面 NavigableSet<E> 中的 iterator
指定者:
介面 Set<E> 中的 iterator
指定者:
類別 AbstractCollection<E> 中的 iterator
返回:
在此 set 的元素上以升序進行迭代的迭代器

descendingIterator

public Iterator<E> descendingIterator()
返回在此 set 的元素上以降序進行迭代的迭代器。

指定者:
介面 NavigableSet<E> 中的 descendingIterator
返回:
在此 set 的元素上以降序進行迭代的迭代器

equals

public boolean equals(Object o)
比較指定對象與此 set 的相等性。如果指定的物件也是一個 set,兩個 set 的大小相同,並且指定 set 的所有成員都包含在此 set 中(或者此 set 的所有成員都包含在指定的 set 中),則返回 true。此定義確保了 equals 方法可在不同的 set 介面實作間正常工作。

指定者:
介面 Collection<E> 中的 equals
指定者:
介面 Set<E> 中的 equals
覆寫:
類別 AbstractSet<E> 中的 equals
參數:
o - 要與此 set 進行相等性比較的物件
返回:
如果指定的物件等於此 set,則返回 true
另請參見:
Object.hashCode(), Hashtable

removeAll

public boolean removeAll(Collection<?> c)
從此 set 中移除包含在指定 collection 中的所有元素。如果指定的 collection 也是一個 set,那麼此操作將實際修改此 set,從而其值是兩個 set 的一個不對稱差集

指定者:
介面 Collection<E> 中的 removeAll
指定者:
介面 Set<E> 中的 removeAll
覆寫:
類別 AbstractSet<E> 中的 removeAll
參數:
c - 套件含要從此 set 中移除的元素的 collection
返回:
如果此 set 由於調用而發生更改,則返回 true
拋出:
ClassCastException - 如果此 set 中一個或多個元素的型別與指定的 collection 不相容
NullPointerException - 如果指定的 collection 或其任何元素為 null
另請參見:
AbstractCollection.remove(Object), AbstractCollection.contains(Object)

lower

public E lower(E e)
從介面 NavigableSet 複製的描述
返回此 set 中嚴格小於給定元素的最大元素;如果不存在這樣的元素,則返回 null

指定者:
介面 NavigableSet<E> 中的 lower
參數:
e - 要比對的值
返回:
小於 e 的最大元素;如果不存在這樣的元素,則返回 null
拋出:
ClassCastException - 如果指定元素不能與 set 中的當前元素進行比較
NullPointerException - 如果指定的元素為 null

floor

public E floor(E e)
從介面 NavigableSet 複製的描述
返回此 set 中小於等於給定元素的最大元素;如果不存在這樣的元素,則返回 null

指定者:
介面 NavigableSet<E> 中的 floor
參數:
e - 要比對的值
返回:
小於等於 e 的最大元素;如果不存在這樣的元素,則返回 null
拋出:
ClassCastException - 如果指定元素不能與 set 中的當前元素進行比較
NullPointerException - 如果指定的元素為 null

ceiling

public E ceiling(E e)
從介面 NavigableSet 複製的描述
返回此 set 中大於等於給定元素的最小元素;如果不存在這樣的元素,則返回 null

指定者:
介面 NavigableSet<E> 中的 ceiling
參數:
e - 要比對的值
返回:
大於等於 e 的最小元素;如果不存在這樣的元素,則返回 null
拋出:
ClassCastException - 如果指定元素不能與 set 中的當前元素進行比較
NullPointerException - 如果指定的元素為 null

higher

public E higher(E e)
從介面 NavigableSet 複製的描述
返回此 set 中嚴格大於給定元素的最小元素;如果不存在這樣的元素,則返回 null

指定者:
介面 NavigableSet<E> 中的 higher
參數:
e - 要比對的值
返回:
大於 e 的最小元素;如果不存在這樣的元素,則返回 null
拋出:
ClassCastException - 如果指定元素不能與 set 中的當前元素進行比較
NullPointerException - 如果指定的元素為 null

pollFirst

public E pollFirst()
從介面 NavigableSet 複製的描述
獲取並移除第一個(最低)元素;如果此 set 為空,則返回 null

指定者:
介面 NavigableSet<E> 中的 pollFirst
返回:
第一個元素;如果此 set 為空,則返回 null

pollLast

public E pollLast()
從介面 NavigableSet 複製的描述
獲取並移除最後一個(最高)元素;如果此 set 為空,則返回 null

指定者:
介面 NavigableSet<E> 中的 pollLast
返回:
最後一個元素;如果此 set 為空,則返回 null

comparator

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

指定者:
介面 SortedSet<E> 中的 comparator
返回:
用來對此 set 中的元素進行排序的比較器;如果此 set 使用其元素的自然順序,則返回 null

first

public E first()
從介面 SortedSet 複製的描述
返回此 set 中當前第一個(最低)元素。

指定者:
介面 SortedSet<E> 中的 first
返回:
此 set 中當前第一個(最低)元素
拋出:
NoSuchElementException - 如果此 set 為空

last

public E last()
從介面 SortedSet 複製的描述
返回此 set 中當前最後一個(最高)元素。

指定者:
介面 SortedSet<E> 中的 last
返回:
此 set 中當前最後一個(最高)元素
拋出:
NoSuchElementException - 如果此 set 為空

subSet

public NavigableSet<E> subSet(E fromElement,
                              boolean fromInclusive,
                              E toElement,
                              boolean toInclusive)
從介面 NavigableSet 複製的描述
返回此 set 的部分視圖,其元素範圍從 fromElementtoElement。如果 fromElementtoElement 相等,則返回的 set 為空,除非 fromExclusivetoExclusive 都為 true。返回的 set 受此 set 支持,所以在返回 set 中的更改將反映在此 set 中,反之亦然。返回 set 支持此 set 支持的所有可選 set 操作。

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

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

headSet

public NavigableSet<E> headSet(E toElement,
                               boolean inclusive)
從介面 NavigableSet 複製的描述
返回此 set 的部分視圖,其元素小於(或等於,如果 inclusive 為 true)toElement。返回的 set 受此 set 支持,所以在返回 set 中的更改將反映在此 set 中,反之亦然。返回 set 支持此 set 支持的所有可選 set 操作。

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

指定者:
介面 NavigableSet<E> 中的 headSet
參數:
toElement - 返回 set 的高端點
inclusive - 如果高端點要包含在返回的視圖中,則為 true
返回:
此 set 的部分視圖,其元素小於(或等於,如果 inclusive 為 true)toElement
拋出:
ClassCastException - 如果 toElement 與此 set 的比較器不相容(如果 set 沒有比較器;如果 toElement 沒有實作 Comparable)。如果 toElement 不能與 set 中的當前元素進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 toElement 為 null
IllegalArgumentException - 如果此 set 本身有範圍限制,並且 toElement 位於範圍的邊界之外

tailSet

public NavigableSet<E> tailSet(E fromElement,
                               boolean inclusive)
從介面 NavigableSet 複製的描述
返回此 set 的部分視圖,其元素大於(或等於,如果 inclusive 為 true)fromElement。返回的 set 受此 set 支持,所以在返回 set 中的更改將反映在此 set 中,反之亦然。返回 set 支持此 set 支持的所有可選 set 操作。

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

指定者:
介面 NavigableSet<E> 中的 tailSet
參數:
fromElement - 返回 set 的低端點
inclusive - 如果低端點要包含在返回的視圖中,則為 true
返回:
此 set 的部分視圖,其元素大於等於 fromElement
拋出:
ClassCastException - 如果 fromElement 與此 set 的比較器不相容(如果 set 沒有任何比較器;如果 fromElement 沒有實作 Comparable)。如果 fromElement 不能與 set 中的當前元素進行比較,則實作可以(但不是必須)拋出此異常。
NullPointerException - 如果 fromElement 為 null
IllegalArgumentException - 如果此 set 本身有範圍限制,並且 fromElement 位於範圍的邊界之外

subSet

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

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

等效於 subSet(fromElement, true, toElement, false)

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

headSet

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

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

等效於 headSet(toElement, false)

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

tailSet

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

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

等效於 tailSet(fromElement, true)

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

descendingSet

public NavigableSet<E> descendingSet()
返回此 set 中所包含元素的逆序視圖。降序 set 受此 set 的支持,因此對此 set 的更改將反映在降序 set 中,反之亦然。

返回 set 的順序等於 Collections.reverseOrder(comparator())。表達式 s.descendingSet().descendingSet() 返回的 s 視圖基本等效於 s

指定者:
介面 NavigableSet<E> 中的 descendingSet
返回:
此 set 的逆序視圖

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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