Most visited

Recently visited

Added in API level 9

ConcurrentSkipListSet

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

java.lang.Object
   ↳ java.util.AbstractCollection<E>
     ↳ java.util.AbstractSet<E>
       ↳ java.util.concurrent.ConcurrentSkipListSet<E>


可扩展的并行NavigableSet实现基于一个ConcurrentSkipListMap 该组中的元素被保持根据自己的排序natural ordering ,或由Comparator集合创建时提供,这取决于使用的构造。

此实现提供预期平均log(n)的时间成本,为containsadd ,并remove操作及其变体。 插入,删除和访问操作可以安全地由多个线程同时执行。

迭代器和分割器是 weakly consistent

按升序排列的视图及其迭代器比下降的视图快。

请注意,与大多数收藏不同, size方法不是一个常量操作。 由于这些集合的异步特性,确定当前元素数量需要遍历元素,因此如果在遍历期间修改此集合,则可能会报告不准确的结果。 此外,该批量操作addAllremoveAllretainAllcontainsAllequalstoArray待原子方式执行, 不能保证。 例如,与addAll操作同时运行的迭代器可能仅查看一些添加的元素。

该类及其迭代器实现SetIterator接口的所有可选方法。 像大多数其他并发集合实现一样,此类不允许使用null元素,因为null参数和返回值不能可靠地与缺少元素区分开来。

Summary

Public constructors

ConcurrentSkipListSet()

构造一个新的空集,根据其元素 natural ordering对其元素进行 排序

ConcurrentSkipListSet(Comparator<? super E> comparator)

构造一个新的空集,根据指定的比较器对其元素进行排序。

ConcurrentSkipListSet(Collection<? extends E> c)

构造一个包含指定集合中元素的新集合,该元素根据其元素 natural ordering排序

ConcurrentSkipListSet(SortedSet<E> s)

构造一个包含相同元素并使用与指定的排序集相同顺序的新集。

Public methods

boolean add(E e)

如果指定的元素不存在,则将其添加到此集合中。

E ceiling(E e)

返回此集合中大于或等于给定元素的 null元素,如果不存在此元素,则 null

void clear()

删除此组中的所有元素。

ConcurrentSkipListSet<E> clone()

返回此 ConcurrentSkipListSet实例的浅表副本。

Comparator<? super E> comparator()

返回用于如果此set使用命令在该组中的元素,或 null比较 natural ordering的元素。

boolean contains(Object o)

如果此集合包含指定的元素,则返回 true

Iterator<E> descendingIterator()

以降序返回此集合中元素的迭代器。

NavigableSet<E> descendingSet()

返回此集合中包含的元素的逆序视图。

boolean equals(Object o)

将指定的对象与此集合进行相等比较。

E first()

返回当前在这个集合中的第一个(最低)元素。

E floor(E e)

返回此集合中小于或等于给定元素的最大元素,如果不存在此元素,则 null

NavigableSet<E> headSet(E toElement, boolean inclusive)

返回此集合中元素小于(或等于,如果 inclusive为true) toElement

NavigableSet<E> headSet(E toElement)

返回该组中元素严格小于 toElement的部分的视图。

相当于 headSet(toElement, false)

E higher(E e)

返回此集合中的最小元素严格大于给定元素,如果不存在此元素,则 null

boolean isEmpty()

如果此集合不包含元素,则返回 true

Iterator<E> iterator()

以升序返回此集合中元素的迭代器。

E last()

返回当前在这个集合中的最后(最高)元素。

E lower(E e)

返回此集合中最大的元素,严格小于给定元素,如果不存在这样的元素,则 null

E pollFirst()

检索并删除第一个(最低)元素,如果此集合为空,则返回 null

E pollLast()

检索并删除最后一个(最高)元素,如果此集合为空,则返回 null

boolean remove(Object o)

如果存在,则从该集合中删除指定的元素。

boolean removeAll(Collection<?> c)

从该集合中移除指定集合中包含的所有元素。

int size()

返回此集合中的元素数量。

Spliterator<E> spliterator()

返回此集合中元素的 Spliterator

NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)

返回此集合中元素范围从 fromElementtoElement的部分视图。

NavigableSet<E> subSet(E fromElement, E toElement)

返回此集合的部分视图,其元素范围从 fromElement (含)至 toElement (不包括)。

相当于 subSet(fromElement, true, toElement, false)

NavigableSet<E> tailSet(E fromElement, boolean inclusive)

返回此集合的元素大于(或等于,如果 inclusive为true) fromElement

NavigableSet<E> tailSet(E fromElement)

返回该元素大于或等于 fromElement的部分视图。

相当于 tailSet(fromElement, true)

Inherited methods

From class java.util.AbstractSet
From class java.util.AbstractCollection
From class java.lang.Object
From interface java.util.Set
From interface java.util.Collection
From interface java.util.NavigableSet
From interface java.lang.Iterable
From interface java.util.SortedSet

Public constructors

ConcurrentSkipListSet

Added in API level 9
ConcurrentSkipListSet ()

构造一个新的空集,根据其元素 natural ordering对其元素进行 排序

ConcurrentSkipListSet

Added in API level 9
ConcurrentSkipListSet (Comparator<? super E> comparator)

构造一个新的空集,根据指定的比较器对其元素进行排序。

Parameters
comparator Comparator: the comparator that will be used to order this set. If null, the natural ordering of the elements will be used.

ConcurrentSkipListSet

Added in API level 9
ConcurrentSkipListSet (Collection<? extends E> c)

构造一个包含指定集合中元素的新集合,该集合按照其元素 natural ordering排序

Parameters
c Collection: The elements that will comprise the new set
Throws
ClassCastException if the elements in c are not Comparable, or are not mutually comparable
NullPointerException if the specified collection or any of its elements are null

ConcurrentSkipListSet

Added in API level 9
ConcurrentSkipListSet (SortedSet<E> s)

构造一个包含相同元素并使用与指定的排序集相同顺序的新集。

Parameters
s SortedSet: sorted set whose elements will comprise the new set
Throws
NullPointerException if the specified sorted set or any of its elements are null

Public methods

add

Added in API level 9
boolean add (E e)

如果指定的元素不存在,则将其添加到此集合中。 更正式地说,如果该集合不包含元素e2例如e.equals(e2) ,则将指定元素e添加到该集合。 如果此集合已包含该元素,则该呼叫将保持该集合不变并返回false

Parameters
e E: element to be added to this set
Returns
boolean true if this set did not already contain the specified element
Throws
ClassCastException if e cannot be compared with the elements currently in this set
NullPointerException if the specified element is null

ceiling

Added in API level 9
E ceiling (E e)

返回此集合中大于或等于给定元素的 null元素,如果不存在此元素,则 null

Parameters
e E: the value to match
Returns
E the least element greater than or equal to e, or null if there is no such element
Throws
ClassCastException
NullPointerException if the specified element is null

clear

Added in API level 9
void clear ()

删除此组中的所有元素。

clone

Added in API level 9
ConcurrentSkipListSet<E> clone ()

返回此ConcurrentSkipListSet实例的浅表副本。 (元素本身没有被克隆。)

Returns
ConcurrentSkipListSet<E> a shallow copy of this set

comparator

Added in API level 9
Comparator<? super E> comparator ()

返回用于如果此set使用命令在该组中的元素,或 null比较 natural ordering的元素。

Returns
Comparator<? super E> the comparator used to order the elements in this set, or null if this set uses the natural ordering of its elements

contains

Added in API level 9
boolean contains (Object o)

如果此集合包含指定的元素,则返回true 更正式地,返回true当且仅当这个集合包含一个元素e例如o.equals(e)

Parameters
o Object: object to be checked for containment in this set
Returns
boolean true if this set contains the specified element
Throws
ClassCastException if the specified element cannot be compared with the elements currently in this set
NullPointerException if the specified element is null

descendingIterator

Added in API level 9
Iterator<E> descendingIterator ()

以降序返回此集合中元素的迭代器。

Returns
Iterator<E> an iterator over the elements in this set in descending order

descendingSet

Added in API level 9
NavigableSet<E> descendingSet ()

返回此集合中包含的元素的逆序视图。 降序集由该集支持,因此对集的更改反映在降序集中,反之亦然。

返回的集合的订购等同于Collections.reverseOrder (comparator()) 表达s.descendingSet().descendingSet()返回一个视图的s实质上等同于s

Returns
NavigableSet<E> a reverse order view of this set

equals

Added in API level 9
boolean equals (Object o)

将指定的对象与此集合进行相等比较。 如果指定对象也是一个集合,则两个集合具有相同的大小,并且指定集合中的每个成员都包含在此集合中(或等价地,此集合中的每个成员都包含在指定集合中),则返回true 该定义确保equals方法在设置接口的不同实现之间正常工作。

Parameters
o Object: the object to be compared for equality with this set
Returns
boolean true if the specified object is equal to this set

first

Added in API level 9
E first ()

返回当前在这个集合中的第一个(最低)元素。

Returns
E the first (lowest) element currently in this set
Throws
NoSuchElementException

floor

Added in API level 9
E floor (E e)

返回此集合中小于或等于给定元素的最大元素,如果不存在此元素,则 null

Parameters
e E: the value to match
Returns
E the greatest element less than or equal to e, or null if there is no such element
Throws
ClassCastException
NullPointerException if the specified element is null

headSet

Added in API level 9
NavigableSet<E> headSet (E toElement, 
                boolean inclusive)

返回此集合的元素小于(或等于,如果inclusive为真) toElement 返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持此集合支持的所有可选集操作。

返回的集合将抛出 IllegalArgumentException试图在其范围外插入元素。

Parameters
toElement E: high endpoint of the returned set
inclusive boolean: true if the high endpoint is to be included in the returned view
Returns
NavigableSet<E> a view of the portion of this set whose elements are less than (or equal to, if inclusive is true) toElement
Throws
ClassCastException
NullPointerException if toElement is null
IllegalArgumentException

headSet

Added in API level 9
NavigableSet<E> headSet (E toElement)

返回该组中元素严格小于toElement的部分视图。 返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持此集合支持的所有可选集操作。

返回的集合将抛出 IllegalArgumentException试图在其范围外插入元素。

相当于 headSet(toElement, false)

Parameters
toElement E: high endpoint (exclusive) of the returned set
Returns
NavigableSet<E> a view of the portion of this set whose elements are strictly less than toElement
Throws
ClassCastException
NullPointerException if toElement is null
IllegalArgumentException

higher

Added in API level 9
E higher (E e)

如果不存在这样的元素,则返回该集合中的最小元素严格大于给定元素,或 null

Parameters
e E: the value to match
Returns
E the least element greater than e, or null if there is no such element
Throws
ClassCastException
NullPointerException if the specified element is null

isEmpty

Added in API level 9
boolean isEmpty ()

如果此集合不包含元素,则返回 true

Returns
boolean true if this set contains no elements

iterator

Added in API level 9
Iterator<E> iterator ()

以升序返回此集合中元素的迭代器。

Returns
Iterator<E> an iterator over the elements in this set in ascending order

last

Added in API level 9
E last ()

返回当前在这个集合中的最后(最高)元素。

Returns
E the last (highest) element currently in this set
Throws
NoSuchElementException

lower

Added in API level 9
E lower (E e)

如果不存在这样的元素,则返回此集合中最大的元素严格小于给定元素,或 null

Parameters
e E: the value to match
Returns
E the greatest element less than e, or null if there is no such element
Throws
ClassCastException
NullPointerException if the specified element is null

pollFirst

Added in API level 9
E pollFirst ()

检索并删除第一个(最低)元素,如果此集合为空,则返回 null

Returns
E the first element, or null if this set is empty

pollLast

Added in API level 9
E pollLast ()

检索并删除最后一个(最高)元素,如果此集合为空,则返回 null

Returns
E the last element, or null if this set is empty

remove

Added in API level 9
boolean remove (Object o)

如果存在,则从该集合中删除指定的元素。 更正式地说,删除一个元素e ,使得o.equals(e) ,如果这个集合包含这样一个元素。 如果此集合包含该元素(或等价地,如果该集合因呼叫而改变),则返回true (一旦调用返回,此集合将不包含该元素。)

Parameters
o Object: object to be removed from this set, if present
Returns
boolean true if this set contained the specified element
Throws
ClassCastException if o cannot be compared with the elements currently in this set
NullPointerException if the specified element is null

removeAll

Added in API level 9
boolean removeAll (Collection<?> c)

从该集合中移除指定集合中包含的所有元素。 如果指定的集合也是集合,则此操作会有效地修改此集合,使其值为两个集合的不对称集合差异

Parameters
c Collection: collection containing elements to be removed from this set
Returns
boolean true if this set changed as a result of the call
Throws
ClassCastException if the class of an element of this set is incompatible with the specified collection (optional)
NullPointerException if the specified collection or any of its elements are null

size

Added in API level 9
int size ()

返回此集合中的元素数量。 如果该集合包含多于Integer.MAX_VALUE元素,则返回Integer.MAX_VALUE

请注意,与大多数集合不同,此方法不是一个常量操作。 由于这些集合的异步性质,确定元素的当前数量需要遍历它们以对它们进行计数。 此外,在执行此方法期间可能会更改大小,在这种情况下返回的结果将不准确。 因此,这种方法在并发应用程序中通常不是很有用。

Returns
int the number of elements in this set

spliterator

Added in API level 24
Spliterator<E> spliterator ()

返回此集合中元素的 Spliterator

Spliterator报告CONCURRENTNONNULLDISTINCTSORTEDORDERED ,与被升序的顺序相遇。 重写实现应记录附加特征值的报告。

该spliterator的比较(见getComparator() )是null如果设定的比较(见comparator() )是null 否则,分割器的比较器与集合的比较器相同,或者施加相同的总排序。

Returns
Spliterator<E> a Spliterator over the elements in this set

subSet

Added in API level 9
NavigableSet<E> subSet (E fromElement, 
                boolean fromInclusive, 
                E toElement, 
                boolean toInclusive)

返回此集合的部分视图,其元素范围从fromElementtoElement 如果fromElementtoElement相等,则返回的集合为空,除非fromInclusivetoInclusive均为真。 返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持此集合支持的所有可选集操作。

返回的集合将抛出 IllegalArgumentException试图在其范围外插入元素。

Parameters
fromElement E: low endpoint of the returned set
fromInclusive boolean: true if the low endpoint is to be included in the returned view
toElement E: high endpoint of the returned set
toInclusive boolean: true if the high endpoint is to be included in the returned view
Returns
NavigableSet<E> a view of the portion of this set whose elements range from fromElement, inclusive, to toElement, exclusive
Throws
ClassCastException
NullPointerException if fromElement or toElement is null
IllegalArgumentException

subSet

Added in API level 9
NavigableSet<E> subSet (E fromElement, 
                E toElement)

返回此集合的部分视图,其元素范围从fromElement (含)至toElement (不包括)。 (如果fromElementtoElement相等,则返回的集合是空的。)返回的集合由此集合支持,因此返回集合中的更改反映在此集合中,反之亦然。 返回的集合支持此集合支持的所有可选集操作。

返回的集合将抛出 IllegalArgumentException ,试图在其范围外插入元素。

相当于 subSet(fromElement, true, toElement, false)

Parameters
fromElement E: low endpoint (inclusive) of the returned set
toElement E: high endpoint (exclusive) of the returned set
Returns
NavigableSet<E> a view of the portion of this set whose elements range from fromElement, inclusive, to toElement, exclusive
Throws
ClassCastException
NullPointerException if fromElement or toElement is null
IllegalArgumentException

tailSet

Added in API level 9
NavigableSet<E> tailSet (E fromElement, 
                boolean inclusive)

返回此集合的元素大于(或等于,如果inclusive为true) fromElement 返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持此集合支持的所有可选集操作。

返回的集合将抛出一个 IllegalArgumentException试图在其范围外插入一个元素。

Parameters
fromElement E: low endpoint of the returned set
inclusive boolean: true if the low endpoint is to be included in the returned view
Returns
NavigableSet<E> a view of the portion of this set whose elements are greater than or equal to fromElement
Throws
ClassCastException
NullPointerException if fromElement is null
IllegalArgumentException

tailSet

Added in API level 9
NavigableSet<E> tailSet (E fromElement)

返回此元素大于或等于fromElement的部分视图。 返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持此集合支持的所有可选集操作。

返回的集合将抛出 IllegalArgumentException尝试在其范围外插入元素。

相当于 tailSet(fromElement, true)

Parameters
fromElement E: low endpoint (inclusive) of the returned set
Returns
NavigableSet<E> a view of the portion of this set whose elements are greater than or equal to fromElement
Throws
ClassCastException
NullPointerException if fromElement is null
IllegalArgumentException

Hooray!