| |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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
进行排序,具体取决于使用的构造方法。
此实现为 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 的成员。
- 从以下版本开始:
- 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 的部分视图,其元素范围从 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 |
构造方法详细信息 |
---|
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()
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