- java.lang.Object
 -  
      
- java.util.AbstractCollection<E>
 -  
        
- java.util.AbstractSet<E>
 -  
          
- java.util.concurrent.ConcurrentSkipListSet<E>
 
 
 
 
-  
       
- 参数类型
 -  
         
E- 此集维护的元素类型 
- 实现的所有接口
 -  
         
Serializable,Cloneable,Iterable<E>,Collection<E>,NavigableSet<E>,Set<E>,SortedSet<E> 
public class ConcurrentSkipListSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, Serializable
可扩展的并行NavigableSet实现基于一个ConcurrentSkipListMap。 该组中的元素被保持根据自己的排序natural ordering ,或由Comparator集合创建时提供,这取决于使用的构造。此实现提供预期平均log(n)的时间成本,为
contains,add,并remove操作及其变体。 插入,删除和访问操作由多个线程安全地同时执行。迭代器和分裂器是weakly consistent 。
升序有序视图及其迭代器比降序视图快。
请注意,与大多数集合不同,
size方法不是恒定时间操作。 由于这些集合的异步性质,确定当前元素数量需要遍历元素,因此如果在遍历期间修改此集合,则可能会报告不准确的结果。该添加,删除,或检查多个元件批量操作,如
AbstractCollection.addAll(java.util.Collection<? extends E>),Collection.removeIf(java.util.function.Predicate<? super E>)或Iterable.forEach(java.util.function.Consumer<? super T>)被原子方式执行, 不能保证。 例如,forEach遍历与addAll操作并发可能只会观察到一些添加的元素。此类及其迭代器实现
Set和Iterator接口的所有可选方法。 与大多数其他并发集合实现一样,此类不允许使用null元素,因为null参数和返回值无法可靠地与缺少元素区分开来。此类是Java Collections Framework的成员。
- 从以下版本开始:
 - 1.6
 - 另请参见:
 - Serialized Form
 
 
-  
        
       
-  
             
构造方法摘要
构造方法 构造器 描述 ConcurrentSkipListSet()构造一个新的空集,根据natural ordering对其元素进行排序 。ConcurrentSkipListSet(Collection<? extends E> c)构造一个包含指定集合中元素的新集合,该集合根据其natural ordering对其元素进行排序 。ConcurrentSkipListSet(Comparator<? super E> comparator)构造一个新的空集,根据指定的比较器对其元素进行排序。ConcurrentSkipListSet(SortedSet<E> s)构造一个包含相同元素的新集合,并使用与指定有序集合相同的顺序。 
-  
             
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 booleanadd(E e)如果指定的元素尚不存在,则将其添加到此集合中。Eceiling(E e)返回此set中大于或等于给定元素的null元素,如果没有这样的元素,则null。voidclear()从该集中删除所有元素。ConcurrentSkipListSet<E>clone()返回此ConcurrentSkipListSet实例的浅表副本。booleancontains(Object o)如果此set包含指定的元素,则返回true。Iterator<E>descendingIterator()以降序返回此集合中元素的迭代器。NavigableSet<E>descendingSet()返回此set中包含的元素的逆序视图。booleanequals(Object o)将指定对象与此set进行相等性比较。Efirst()返回此集合中当前的第一个(最低)元素。Efloor(E e)返回此set中小于或等于给定元素的最大元素,如果没有这样的元素,则null。NavigableSet<E>headSet(E toElement)返回此set的部分视图,其元素严格小于toElement。NavigableSet<E>headSet(E toElement, boolean inclusive)返回此set的部分视图,其元素小于(或等于,如果inclusive为true)toElement。Ehigher(E e)返回此集合中的最小元素严格大于给定元素,如果没有这样的元素,则null。booleanisEmpty()如果此集合不包含任何元素,则返回true。Iterator<E>iterator()以升序返回此集合中元素的迭代器。Elast()返回此集合中当前的最后一个(最高)元素。Elower(E e)返回此集合中的最大元素严格小于给定元素,如果没有这样的元素,则null。booleanremove(Object o)如果存在,则从该集合中移除指定的元素。booleanremoveAll(Collection<?> c)从此集合中删除指定集合中包含的所有元素。intsize()返回此集合中的元素数。Spliterator<E>spliterator()在此集合中的元素上返回Spliterator。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.util.Collection
parallelStream, removeIf, stream, toArray 
-  
               
声明方法的接口 java.util.NavigableSet
pollFirst, pollLast 
-  
               
声明方法的接口 java.util.SortedSet
comparator 
 -  
               
 
 -  
             
 
-  
        
       
-  
             
构造方法详细信息
-  
ConcurrentSkipListSet
public ConcurrentSkipListSet()
构造一个新的空集,根据natural ordering对其元素进行排序 。 
-  
ConcurrentSkipListSet
public ConcurrentSkipListSet(Comparator<? super E> comparator)
构造一个新的空集,根据指定的比较器对其元素进行排序。- 参数
 -  
              
comparator- 将用于订购此集的比较器。 如果null,将使用natural ordering的元素。 
 
-  
ConcurrentSkipListSet
public ConcurrentSkipListSet(Collection<? extends E> c)
构造一个包含指定集合中元素的新集合,该集合根据其natural ordering对其元素进行排序 。- 参数
 -  
              
c- 将构成新集的元素 - 异常
 -  
              
ClassCastException- 如果c中的元素不是Comparable,或者不可相互比较 -  
              
NullPointerException- 如果指定的集合或其任何元素为null 
 
-  
ConcurrentSkipListSet
public ConcurrentSkipListSet(SortedSet<E> s)
构造一个包含相同元素的新集合,并使用与指定有序集合相同的顺序。- 参数
 -  
              
s- 排序集,其元素将包含新集 - 异常
 -  
              
NullPointerException- 如果指定的有序集或其任何元素为null 
 
 -  
 
-  
             
方法详细信息
-  
clone
public ConcurrentSkipListSet<E> clone()
返回此ConcurrentSkipListSet实例的浅表副本。 (元素本身未被克隆。) 
-  
size
public int size()
返回此集合中的元素数。 如果此集包含超过Integer.MAX_VALUE元素,则返回Integer.MAX_VALUE。请注意,与大多数集合不同,此方法不是恒定时间操作。 由于这些集合的异步性质,确定当前的元素数量需要遍历它们以计算它们。 另外,在执行此方法期间可能会更改大小,在这种情况下返回的结果将是不准确的。 因此,该方法在并发应用程序中通常不是很有用。
 
-  
isEmpty
public boolean isEmpty()
如果此集合不包含任何元素,则返回true。- Specified by:
 -  
              
isEmpty在界面Collection<E> - Specified by:
 -  
              
isEmpty在界面Set<E> - 重写:
 -  
              
isEmpty在类AbstractCollection<E> - 结果
 -  
              
true如果此集合不包含任何元素 
 
-  
contains
public boolean contains(Object o)
如果此set包含指定的元素,则返回true。 更正式地,返回true当且仅当此集合包含e这样的元素o.equals(e)。- Specified by:
 -  
              
contains在界面Collection<E> - Specified by:
 -  
              
contains在界面Set<E> - 重写:
 -  
              
contains在课程AbstractCollection<E> - 参数
 -  
              
o- 要在此集中检查包含的对象 - 结果
 -  
              
true如果此set包含指定的元素 - 异常
 -  
              
ClassCastException- 如果指定的元素无法与此集合中当前的元素进行比较 -  
              
NullPointerException- 如果指定的元素为null 
 
-  
add
public boolean add(E e)
如果指定的元素尚不存在,则将其添加到此集合中。 更正式地,如果集合中不包含e2这样的e.equals(e2),则将指定的元素e添加到此集合中。 如果此set已包含该元素,则调用将保持set不变并返回false。- Specified by:
 -  
              
add在界面Collection<E> - Specified by:
 -  
              
add在界面Set<E> - 重写:
 -  
              
add类AbstractCollection<E> - 参数
 -  
              
e- 要添加到此集合的元素 - 结果
 -  
              
true如果此集合尚未包含指定的元素 - 异常
 -  
              
ClassCastException- 如果e无法与此集合中当前的元素进行比较 -  
              
NullPointerException- 如果指定的元素为null 
 
-  
remove
public boolean remove(Object o)
如果存在,则从该集合中移除指定的元素。 更正式地,删除元素e,使得o.equals(e),如果此集合包含这样的元素。 如果此set包含元素,则返回true(或等效地,如果此set因调用而更改)。 (一旦调用返回,该集合将不包含该元素。)- Specified by:
 -  
              
remove在界面Collection<E> - Specified by:
 -  
              
remove在界面Set<E> - 重写:
 -  
              
remove类AbstractCollection<E> - 参数
 -  
              
o- 要从此集合中删除的对象(如果存在) - 结果
 -  
              
true如果此set包含指定的元素 - 异常
 -  
              
ClassCastException- 如果o无法与此集合中当前的元素进行比较 -  
              
NullPointerException- 如果指定的元素为null 
 
-  
clear
public void clear()
从该集中删除所有元素。- Specified by:
 -  
              
clear在界面Collection<E> - Specified by:
 -  
              
clear在界面Set<E> - 重写:
 -  
              
clear类AbstractCollection<E> 
 
-  
iterator
public Iterator<E> iterator()
以升序返回此集合中元素的迭代器。- Specified by:
 -  
              
iterator在界面Collection<E> - Specified by:
 -  
              
iterator在界面Iterable<E> - Specified by:
 -  
              
iterator在界面NavigableSet<E> - Specified by:
 -  
              
iterator在界面Set<E> - Specified by:
 -  
              
iterator在类AbstractCollection<E> - 结果
 - 按升序排列此集合中元素的迭代器
 
 
-  
descendingIterator
public Iterator<E> descendingIterator()
以降序返回此集合中元素的迭代器。- Specified by:
 -  
              
descendingIterator,界面NavigableSet<E> - 结果
 - 这个集合中元素的迭代器按降序排列
 
 
-  
equals
public boolean equals(Object o)
将指定对象与此set进行相等性比较。 如果指定的对象也是一个集合,则返回true,这两个集合具有相同的大小,并且指定集合的每个成员都包含在此集合中(或者等效地,此集合的每个成员都包含在指定的集合中)。 此定义确保equals方法在set接口的不同实现中正常工作。- Specified by:
 -  
              
equals在界面Collection<E> - Specified by:
 -  
              
equals在界面Set<E> - 重写:
 -  
              
equals类AbstractSet<E> - 参数
 -  
              
o- 要与此集进行相等性比较的对象 - 结果
 -  
              
true如果指定的对象等于此set - 另请参见:
 -  
              
Object.hashCode(),HashMap 
 
-  
removeAll
public boolean removeAll(Collection<?> c)
从此集合中删除指定集合中包含的所有元素。 如果指定的集合也是一个集合,则此操作会有效地修改此集合,以使其值为两个集合的不对称集合差异 。- Specified by:
 -  
              
removeAll,界面Collection<E> - Specified by:
 -  
              
removeAll在界面Set<E> - 重写:
 -  
              
removeAll类AbstractSet<E> - 参数
 -  
              
c- 包含要c集合中删除的元素的集合 - 结果
 -  
              
true如果此设置因呼叫而更改 - 异常
 -  
              
ClassCastException- 如果此集合的元素的类与指定的集合不兼容( optional ) -  
              
NullPointerException- 如果指定的集合或其任何元素为null - 另请参见:
 -  
              
AbstractCollection.remove(Object),AbstractCollection.contains(Object) 
 
-  
lower
public E lower(E e)
从界面复制的说明:NavigableSet返回此集合中的最大元素严格小于给定元素,如果没有这样的元素,则null。- Specified by:
 -  
              
lower在界面NavigableSet<E> - 参数
 -  
              
e- 要匹配的值 - 结果
 -  
              
e元素小于e,如果没有这样的元素null - 异常
 -  
              
ClassCastException- 如果指定的元素无法与集合中当前的元素进行比较 -  
              
NullPointerException- 如果指定的元素为null 
 
-  
floor
public E floor(E e)
从界面复制的说明:NavigableSet返回此set中小于或等于给定元素的最大元素,如果没有这样的元素,则null。- Specified by:
 -  
              
floor接口NavigableSet<E> - 参数
 -  
              
e- 要匹配的值 - 结果
 -  
              
e元素小于或等于e,如果没有这样的元素null - 异常
 -  
              
ClassCastException- 如果指定的元素无法与集合中当前的元素进行比较 -  
              
NullPointerException- 如果指定的元素为null 
 
-  
ceiling
public E ceiling(E e)
从界面复制的说明:NavigableSet返回此set中大于或等于给定元素的null元素,如果没有这样的元素,则null。- Specified by:
 -  
              
ceiling在界面NavigableSet<E> - 参数
 -  
              
e- 要匹配的值 - 结果
 - 
               最小元素大于或等于 
              
e,如果没有这样的元素,null - 异常
 -  
              
ClassCastException- 如果指定的元素无法与集合中当前的元素进行比较 -  
              
NullPointerException- 如果指定的元素为null 
 
-  
higher
public E higher(E e)
从界面复制的说明:NavigableSet返回此集合中的最小元素严格大于给定元素,如果没有这样的元素,则null。- Specified by:
 -  
              
higher在界面NavigableSet<E> - 参数
 -  
              
e- 要匹配的值 - 结果
 - 
               最小元素大于 
              
e,如果没有这样的元素null - 异常
 -  
              
ClassCastException- 如果指定的元素无法与集合中当前的元素进行比较 -  
              
NullPointerException- 如果指定的元素为null 
 
-  
first
public E first()
从界面复制的说明:SortedSet返回此集合中当前的第一个(最低)元素。- Specified by:
 -  
              
first,界面SortedSet<E> - 结果
 - 当前在此集合中的第一个(最低)元素
 - 异常
 -  
              
NoSuchElementException- 如果此设置为空 
 
-  
last
public E last()
从界面复制的说明:SortedSet返回此集合中当前的最后一个(最高)元素。- Specified by:
 -  
              
last,界面SortedSet<E> - 结果
 - 当前在此集合中的最后一个(最高)元素
 - 异常
 -  
              
NoSuchElementException- 如果此设置为空 
 
-  
subSet
public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
从界面复制的说明:NavigableSet返回此set的部分视图,其元素范围为fromElement到toElement。 如果fromElement和toElement相等,则返回的集合为空,除非fromInclusive和toInclusive都为真。 返回的集由此集支持,因此返回集中的更改将反映在此集中,反之亦然。 返回的集支持此集支持的所有可选集操作。返回的集合将尝试在其范围之外插入元素时抛出
IllegalArgumentException。- Specified by:
 -  
              
subSet,界面NavigableSet<E> - 参数
 -  
              
fromElement- 返回集的低端点 -  
              
fromInclusive-true如果true低端点包含在返回的视图中 -  
              
toElement- 返回集的高端点 -  
              
toInclusive-true如果true高端点包含在返回的视图中 - 结果
 - 
               此集合的部分视图,其元素范围从 
              
fromElement(含),到toElement,独占 - 异常
 -  
              
ClassCastException- 如果fromElement和toElement无法使用此组的比较器相互比较(或者,如果该组没有比较器,则使用自然排序)。 如果无法将fromElement或toElement与当前集合中的元素进行比较,则实现可能(但不是必须)抛出此异常。 -  
              
NullPointerException- 如果fromElement或toElement为空 -  
              
IllegalArgumentException- 如果fromElement大于toElement; 或者如果此设置本身具有受限范围,则fromElement或toElement位于范围的范围之外。 
 
-  
headSet
public NavigableSet<E> headSet(E toElement, boolean inclusive)
从界面复制的说明:NavigableSet返回此set的部分视图,其元素小于(或等于,如果inclusive为true)toElement。 返回的集由此集支持,因此返回集中的更改将反映在此集中,反之亦然。 返回的集支持此集支持的所有可选集操作。返回的集合将尝试在其范围之外插入元素时抛出
IllegalArgumentException。- Specified by:
 -  
              
headSet,界面NavigableSet<E> - 参数
 -  
              
toElement- 返回集的高端点 -  
              
inclusive-true如果true高端点包含在返回的视图中 - 结果
 - 
               该集合的部分视图,其元素小于(或等于,如果 
              
inclusive为真)toElement - 异常
 -  
              
ClassCastException- 如果toElement与该组的比较器不兼容(或者,如果该组没有比较器,如果toElement未实现Comparable)。 如果无法将toElement与当前集合中的元素进行比较,则实现可能(但不是必须)抛出此异常。 -  
              
NullPointerException- 如果toElement为空 -  
              
IllegalArgumentException- 如果此设置本身具有受限范围,并且toElement位于范围的范围之外 
 
-  
tailSet
public NavigableSet<E> tailSet(E fromElement, boolean inclusive)
从界面复制的说明:NavigableSet返回此set的部分视图,其元素大于(或等于,如果inclusive为true)fromElement。 返回的集由此集支持,因此返回集中的更改将反映在此集中,反之亦然。 返回的集支持此集支持的所有可选集操作。返回的集合将尝试在其范围之外插入元素时抛出
IllegalArgumentException。- Specified by:
 -  
              
tailSetin interfaceNavigableSet<E> - 参数
 -  
              
fromElement- 返回集的低端点 -  
              
inclusive-true如果true低端点包含在返回的视图中 - 结果
 - 
               该集合的部分视图,其元素大于或等于 
              
fromElement - 异常
 -  
              
ClassCastException- 如果fromElement与该组的比较器不兼容(或者,如果该组没有比较器,如果fromElement未实现Comparable)。 如果fromElement无法与集合中当前的元素进行比较,则实现可能(但不是必须)抛出此异常。 -  
              
NullPointerException- 如果fromElement为空 -  
              
IllegalArgumentException- 如果此设置本身具有受限范围,并且fromElement位于范围的范围之外 
 
-  
subSet
public NavigableSet<E> subSet(E fromElement, E toElement)
从界面复制的说明:NavigableSet返回此set的部分视图,其元素范围从fromElement(含)到toElement(不包括)。 (如果fromElement和toElement相等,则返回的集合为空。)返回的集由此集支持,因此返回集中的更改将反映在此集中,反之亦然。 返回的集支持此集支持的所有可选集操作。返回的集合将尝试在其范围之外插入元素时抛出
IllegalArgumentException。相当于
subSet(fromElement, true, toElement, false)。- Specified by:
 -  
              
subSet,界面NavigableSet<E> - Specified by:
 -  
              
subSet接口SortedSet<E> - 参数
 -  
              
fromElement- 返回集的低端点(包括) -  
              
toElement- 返回集的高端点(不包括) - 结果
 - 
               此集合的部分视图,其元素范围从 
              
fromElement(含)到toElement,独占 - 异常
 -  
              
ClassCastException- 如果fromElement和toElement无法使用此组的比较器相互比较(或者,如果该组没有比较器,则使用自然排序)。 如果无法将fromElement或toElement与当前集合中的元素进行比较,则实现可能(但不是必须)抛出此异常。 -  
              
NullPointerException- 如果fromElement或toElement为空 -  
              
IllegalArgumentException- 如果fromElement大于toElement; 或者如果此设置本身具有受限范围,并且fromElement或toElement位于范围的范围之外 
 
-  
headSet
public NavigableSet<E> headSet(E toElement)
从界面复制的说明:NavigableSet返回此set的部分视图,其元素严格小于toElement。 返回的集由此集支持,因此返回集中的更改将反映在此集中,反之亦然。 返回的集支持此集支持的所有可选集操作。返回的集将在尝试插入超出其范围的元素时抛出
IllegalArgumentException。相当于
headSet(toElement, false)。- Specified by:
 -  
              
headSet在界面NavigableSet<E> - Specified by:
 -  
              
headSet在界面SortedSet<E> - 参数
 -  
              
toElement- 返回集的高端点(不包括) - 结果
 - 
               该集合的部分视图,其元素严格小于 
              
toElement - 异常
 -  
              
ClassCastException- 如果toElement与该组的比较器不兼容(或者,如果该组没有比较器,则toElement未实现Comparable)。 如果无法将toElement与当前集合中的元素进行比较,则实现可能(但不是必须)抛出此异常。 -  
              
NullPointerException- 如果toElement为空 -  
              
IllegalArgumentException- 如果此设置本身具有受限范围,并且toElement位于范围的范围之外 
 
-  
tailSet
public NavigableSet<E> tailSet(E fromElement)
从界面复制的说明:NavigableSet返回此set的部分视图,其元素大于或等于fromElement。 返回的集由此集支持,因此返回集中的更改将反映在此集中,反之亦然。 返回的集支持此集支持的所有可选集操作。返回的集合将尝试在其范围之外插入元素时抛出
IllegalArgumentException。相当于
tailSet(fromElement, true)。- Specified by:
 -  
              
tailSet在界面NavigableSet<E> - Specified by:
 -  
              
tailSet在界面SortedSet<E> - 参数
 -  
              
fromElement- 返回集的低端点(包括) - 结果
 - 
               该组的部分视图,其元素大于或等于 
              
fromElement - 异常
 -  
              
ClassCastException- 如果fromElement与该组的比较器不兼容(或者,如果该组没有比较器,如果fromElement未实现Comparable)。 如果无法将fromElement与当前集合中的元素进行比较,则实现可能(但不是必须)抛出此异常。 -  
              
NullPointerException- 如果fromElement为空 -  
              
IllegalArgumentException- 如果此设置本身具有受限范围,并且fromElement位于范围的范围之外 
 
-  
descendingSet
public NavigableSet<E> descendingSet()
返回此set中包含的元素的逆序视图。 降序集由此集支持,因此对集的更改将反映在降序集中,反之亦然。返回的集合的订货量等于
Collections.reverseOrder(comparator())。 表达s.descendingSet().descendingSet()返回一个视图的s实质上等同于s。- Specified by:
 -  
              
descendingSet接口NavigableSet<E> - 结果
 - 该集的逆序视图
 
 
-  
spliterator
public Spliterator<E> spliterator()
在此集合中的元素上返回Spliterator。该
Spliterator报告Spliterator.CONCURRENT,Spliterator.NONNULL,Spliterator.DISTINCT,Spliterator.SORTED和Spliterator.ORDERED,与被升序的顺序相遇。 覆盖实现应记录其他特征值的报告。如果set's comparator是
null则spliterator's comparator是null。 否则,分裂器的比较器与组的比较器相同或强加相同的总排序。- Specified by:
 -  
              
spliterator接口Collection<E> - Specified by:
 -  
              
spliterator接口Iterable<E> - Specified by:
 -  
              
spliteratorin interfaceSet<E> - Specified by:
 -  
              
spliterator接口SortedSet<E> - 结果
 - 
               a 
              
Spliterator超过此集合中的元素 - 从以下版本开始:
 - 1.8
 
 
 -  
 
 -