|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.util.AbstractCollection<E> java.util.AbstractSet<E> java.util.concurrent.ConcurrentSkipListSet<E>
E
- 此 set 维护的元素类型public class ConcurrentSkipListSet<E>
一个基于 ConcurrentSkipListMap
的可缩放并发 NavigableSet
实现。set 的元素可以根据它们的自然顺序进行排序,也可以根据创建 set 时所提供的 Comparator
进行排序,具体取决于使用的构造方法。
此实现为 contains、add、remove 操作及其变体提供预期平均 log(n) 时间开销。多个线程可以安全地并发执行插入、移除和访问操作。迭代器是弱一致 的,返回的元素将反映迭代器创建时或创建后某一时刻的 set 状态。它们不 抛出 ConcurrentModificationException
,可以并发处理其他操作。升序排序视图及其迭代器比降序排序视图及其迭代器更快。
请注意,与在大多数 collection 中不同,这里的 size 方法不是 一个固定时间 (constant-time) 操作。由于这些 set 的异步特性,确定元素的当前数目需要遍历元素。此外,批量操作 addAll、removeAll、retainAll 和 containsAll 并不 保证能以原子方式 (atomically) 执行。例如,与 addAll 操作一起并发操作的迭代器只能查看某些附加元素。
此类及其迭代器实现 Set
和 Iterator
接口的所有可选 方法。与大多数其他并发 collection 实现一样,此类不允许使用 null 元素,因为无法可靠地将 null 参数及返回值与不存在的元素区分开来。
此类是 Java Collections Framework 的成员。
构造方法摘要 | |
---|---|
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 的部分视图,其元素范围从 fromElement 到 toElement 。 |
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 |
构造方法详细信息 |
---|
public ConcurrentSkipListSet()
public ConcurrentSkipListSet(Comparator<? super E> comparator)
comparator
- 用于对此 set 进行排序的比较器。如果此参数为 null,则使用元素的自然顺序。public ConcurrentSkipListSet(Collection<? extends E> c)
c
- 将组成新 set 的元素
ClassCastException
- 如果 c 中的元素不是 Comparable
,或者无法相互比较
NullPointerException
- 如果指定的 collection 或它的任何元素为 nullpublic ConcurrentSkipListSet(SortedSet<E> s)
s
- 有序 set,其元素将组成新的 set
NullPointerException
- 如果指定的有序 set 或它的任何元素为 null方法详细信息 |
---|
public ConcurrentSkipListSet<E> clone()
Object
中的 clone
Cloneable
public int size()
请注意,与在大多数 collection 中不同,此方法在这里不是 一个固定时间 (constant-time) 操作。由于这些 set 的异步特性,确定元素的当前数目需要遍历元素以计算其数目。此外,在执行此方法期间大小可能更改,在这种情况下,返回的结果将不准确。因此,此方法在并发应用程序中通常不是很有用。
Collection<E>
中的 size
Set<E>
中的 size
AbstractCollection<E>
中的 size
public boolean isEmpty()
Collection<E>
中的 isEmpty
Set<E>
中的 isEmpty
AbstractCollection<E>
中的 isEmpty
public boolean contains(Object o)
Collection<E>
中的 contains
Set<E>
中的 contains
AbstractCollection<E>
中的 contains
o
- 检查是否包含在此 set 中的对象
ClassCastException
- 如果指定的元素无法与此 set 中的当前元素进行比较
NullPointerException
- 如果指定的元素为 nullpublic boolean add(E e)
Collection<E>
中的 add
Set<E>
中的 add
AbstractCollection<E>
中的 add
e
- 要添加到此 set 的元素
ClassCastException
- 如果 e 无法与此 set 中的当前元素进行比较
NullPointerException
- 如果指定的元素为 nullpublic boolean remove(Object o)
Collection<E>
中的 remove
Set<E>
中的 remove
AbstractCollection<E>
中的 remove
o
- 要从此 set 中移除的对象(如果存在)
ClassCastException
- 如果 o 无法与此 set 中的当前元素进行比较
NullPointerException
- 如果指定的元素为 nullpublic void clear()
Collection<E>
中的 clear
Set<E>
中的 clear
AbstractCollection<E>
中的 clear
public Iterator<E> iterator()
Iterable<E>
中的 iterator
Collection<E>
中的 iterator
NavigableSet<E>
中的 iterator
Set<E>
中的 iterator
AbstractCollection<E>
中的 iterator
public Iterator<E> descendingIterator()
NavigableSet<E>
中的 descendingIterator
public boolean equals(Object o)
Collection<E>
中的 equals
Set<E>
中的 equals
AbstractSet<E>
中的 equals
o
- 要与此 set 进行相等性比较的对象
Object.hashCode()
,
Hashtable
public boolean removeAll(Collection<?> c)
Collection<E>
中的 removeAll
Set<E>
中的 removeAll
AbstractSet<E>
中的 removeAll
c
- 包含要从此 set 中移除的元素的 collection
ClassCastException
- 如果此 set 中一个或多个元素的类型与指定的 collection 不兼容
NullPointerException
- 如果指定的 collection 或其任何元素为 nullAbstractCollection.remove(Object)
,
AbstractCollection.contains(Object)
public E lower(E e)
NavigableSet
复制的描述null
。
NavigableSet<E>
中的 lower
e
- 要匹配的值
e
的最大元素;如果不存在这样的元素,则返回 null
ClassCastException
- 如果指定元素不能与 set 中的当前元素进行比较
NullPointerException
- 如果指定的元素为 nullpublic E floor(E e)
NavigableSet
复制的描述null
。
NavigableSet<E>
中的 floor
e
- 要匹配的值
e
的最大元素;如果不存在这样的元素,则返回 null
ClassCastException
- 如果指定元素不能与 set 中的当前元素进行比较
NullPointerException
- 如果指定的元素为 nullpublic E ceiling(E e)
NavigableSet
复制的描述null
。
NavigableSet<E>
中的 ceiling
e
- 要匹配的值
e
的最小元素;如果不存在这样的元素,则返回 null
ClassCastException
- 如果指定元素不能与 set 中的当前元素进行比较
NullPointerException
- 如果指定的元素为 nullpublic E higher(E e)
NavigableSet
复制的描述null
。
NavigableSet<E>
中的 higher
e
- 要匹配的值
e
的最小元素;如果不存在这样的元素,则返回 null
ClassCastException
- 如果指定元素不能与 set 中的当前元素进行比较
NullPointerException
- 如果指定的元素为 nullpublic E pollFirst()
NavigableSet
复制的描述null
。
NavigableSet<E>
中的 pollFirst
null
public E pollLast()
NavigableSet
复制的描述null
。
NavigableSet<E>
中的 pollLast
null
public Comparator<? super E> comparator()
SortedSet
复制的描述
SortedSet<E>
中的 comparator
public E first()
SortedSet
复制的描述
SortedSet<E>
中的 first
NoSuchElementException
- 如果此 set 为空public E last()
SortedSet
复制的描述
SortedSet<E>
中的 last
NoSuchElementException
- 如果此 set 为空public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
NavigableSet
复制的描述fromElement
到 toElement
。如果 fromElement
和 toElement
相等,则返回的 set 为空,除非 fromExclusive
和 toExclusive
都为 true。返回的 set 受此 set 支持,所以在返回 set 中的更改将反映在此 set 中,反之亦然。返回 set 支持此 set 支持的所有可选 set 操作。
如果试图在返回 set 的范围之外插入元素,则返回的 set 将抛出 IllegalArgumentException
。
NavigableSet<E>
中的 subSet
fromElement
- 返回 set 的低端点fromInclusive
- 如果低端点要包含在返回的视图中,则为 true
toElement
- 返回 set 的高端点toInclusive
- 如果高端点要包含在返回的视图中,则为 true
fromElement
(包括)到 toElement
(不包括)
ClassCastException
- 如果不能使用此 set 的比较器或者使用自然顺序(如果 set 没有比较器)比较 fromElement
和 toElement
。如果 fromElement
或 toElement
不能与 set 中的当前元素进行比较,则实现可以(但不是必须)抛出此异常。
NullPointerException
- 如果 fromElement
或 toElement
为 null
IllegalArgumentException
- 如果 fromElement
大于 toElement
;如果此 set 本身有范围限制,并且 fromElement
或 toElement
位于范围的边界之外。public NavigableSet<E> headSet(E toElement, boolean inclusive)
NavigableSet
复制的描述inclusive
为 true)toElement
。返回的 set 受此 set 支持,所以在返回 set 中的更改将反映在此 set 中,反之亦然。返回 set 支持此 set 支持的所有可选 set 操作。
如果试图在返回 set 的范围之外插入元素,则返回的 set 将抛出 IllegalArgumentException
。
NavigableSet<E>
中的 headSet
toElement
- 返回 set 的高端点inclusive
- 如果高端点要包含在返回的视图中,则为 true
inclusive
为 true)toElement
ClassCastException
- 如果 toElement
与此 set 的比较器不兼容(如果 set 没有比较器;如果 toElement
没有实现 Comparable
)。如果 toElement
不能与 set 中的当前元素进行比较,则实现可以(但不是必须)抛出此异常。
NullPointerException
- 如果 toElement
为 null
IllegalArgumentException
- 如果此 set 本身有范围限制,并且 toElement
位于范围的边界之外public NavigableSet<E> tailSet(E fromElement, boolean inclusive)
NavigableSet
复制的描述inclusive
为 true)fromElement
。返回的 set 受此 set 支持,所以在返回 set 中的更改将反映在此 set 中,反之亦然。返回 set 支持此 set 支持的所有可选 set 操作。
如果试图在返回 set 的范围之外插入元素,则返回的 set 将抛出 IllegalArgumentException
。
NavigableSet<E>
中的 tailSet
fromElement
- 返回 set 的低端点inclusive
- 如果低端点要包含在返回的视图中,则为 true
fromElement
ClassCastException
- 如果 fromElement
与此 set 的比较器不兼容(如果 set 没有任何比较器;如果 fromElement
没有实现 Comparable
)。如果 fromElement
不能与 set 中的当前元素进行比较,则实现可以(但不是必须)抛出此异常。
NullPointerException
- 如果 fromElement
为 null
IllegalArgumentException
- 如果此 set 本身有范围限制,并且 fromElement
位于范围的边界之外public NavigableSet<E> subSet(E fromElement, E toElement)
NavigableSet
复制的描述如果试图在返回 set 的范围之外插入元素,则返回的 set 将抛出 IllegalArgumentException。
等效于 subSet(fromElement, true, toElement, false)
。
NavigableSet<E>
中的 subSet
SortedSet<E>
中的 subSet
fromElement
- 返回 set 的低端点(包括)toElement
- 返回 set 的高端点(不包括)
ClassCastException
- 如果无法使用此 set 的比较器(如果 set 没有比较器,则使用自然顺序)比较 fromElement 和 toElement。如果 fromElement 或 toElement 不能与 set 中的当前元素进行比较,则实现可以(但不是必须)抛出此异常。
NullPointerException
- 如果 fromElement
或 toElement
为 null
IllegalArgumentException
- 如果 fromElement 大于 toElement;如果此 set 本身有范围限制,并且 fromElement 或 toElement 位于范围的边界之外public NavigableSet<E> headSet(E toElement)
NavigableSet
复制的描述如果试图在返回 set 的范围之外插入元素,则返回的 set 将抛出 IllegalArgumentException。
等效于 headSet(toElement, false)
。
NavigableSet<E>
中的 headSet
SortedSet<E>
中的 headSet
toElement
- 返回 set 的高端点(不包括)
ClassCastException
- 如果 toElement 与此 set 的比较器不兼容(如果 set 没有比较器;如果 toElement 没有实现 Comparable
)。如果 toElement 不能与 set 中的当前元素进行比较,则实现可以(但不是必须)抛出此异常。
NullPointerException
- 如果 toElement
为 null
IllegalArgumentException
- 如果此 set 本身有范围限制,并且 toElement 位于范围的边界之外public NavigableSet<E> tailSet(E fromElement)
NavigableSet
复制的描述如果试图在返回 set 的范围之外插入元素,则返回的 set 将抛出 IllegalArgumentException。
等效于 tailSet(fromElement, true)
。
NavigableSet<E>
中的 tailSet
SortedSet<E>
中的 tailSet
fromElement
- 返回 set 的低端点(包括)
ClassCastException
- 如果 fromElement 与此 set 的比较器不兼容(如果 set 没有比较器;如果 fromElement 没有实现 Comparable
)。如果 fromElement 不能与 set 中的当前元素进行比较,则实现可以(但不是必须)抛出此异常。
NullPointerException
- 如果 fromElement
为 null
IllegalArgumentException
- 如果此 set 本身有范围限制,并且 fromElement 位于范围的边界之外public NavigableSet<E> descendingSet()
返回 set 的顺序等于 Collections.reverseOrder
(comparator())。表达式 s.descendingSet().descendingSet()
返回的 s
视图基本等效于 s
。
NavigableSet<E>
中的 descendingSet
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。