Most visited

Recently visited

Added in API level 24

ConcurrentHashMap.KeySetView

public static class ConcurrentHashMap.KeySetView
extends Object implements Collection<K>, Serializable, Set<K>, Serializable

java.lang.Object
   ↳ java.util.concurrent.ConcurrentHashMap.KeySetView<K, V>


将ConcurrentHashMap视图作为键的一个Set ,其中可以通过映射到一个公共值来选择性地启用添加。 这个类不能直接实例化。 keySet(V)newKeySet()newKeySet(int)

Summary

Public methods

boolean add(K e)

如果已定义,则通过将密钥映射到支持映射中的默认映射值,将指定的密钥添加到此设置视图。

boolean addAll(Collection<? extends K> c)

将指定集合中的所有元素添加到该集合,就像通过每个元素调用 add(E)

final void clear()

通过从支持该视图的地图中删除所有映射,从该视图中移除所有元素。

boolean contains(Object o)

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

final boolean containsAll(Collection<?> c)

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

boolean equals(Object o)

指示其他某个对象是否“等于”这一个。

void forEach(Consumer<? super K> action)
ConcurrentHashMap<K, V> getMap()

返回支持此视图的地图。

V getMappedValue()

返回添加的默认映射值,如果不支持添加,则返回 null

int hashCode()

返回对象的哈希码值。

final boolean isEmpty()

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

Iterator<K> iterator()

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

boolean remove(Object o)

通过从备份映射中除去键(及其相应的值),从该映射视图中除去键。

final boolean removeAll(Collection<?> c)

删除指定集合中包含的所有此集合的元素(可选操作)。

final boolean retainAll(Collection<?> c)

仅保留包含在指定集合中的此集合中的元素(可选操作)。

final int size()

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

Spliterator<K> spliterator()

在此集合中的元素上创建一个 Spliterator

final <T> T[] toArray(T[] a)

返回包含此集合中所有元素的数组; 返回数组的运行时类型是指定数组的运行时类型。

final Object[] toArray()

返回包含此集合中所有元素的数组。

final String toString()

返回此集合的字符串表示形式。

Inherited methods

From class java.lang.Object
From interface java.util.Collection
From interface java.util.Set
From interface java.lang.Iterable

Public methods

add

Added in API level 24
boolean add (K e)

如果已定义,则通过将密钥映射到支持映射中的默认映射值,将指定的密钥添加到此设置视图。

Parameters
e K: key to be added
Returns
boolean true if this set changed as a result of the call
Throws
NullPointerException if the specified key is null
UnsupportedOperationException if no default mapped value for additions was provided

addAll

Added in API level 24
boolean addAll (Collection<? extends K> c)

将指定集合中的所有元素添加到此集合,就像通过每个元素调用 add(E)

Parameters
c Collection: the elements to be inserted into this set
Returns
boolean true if this set changed as a result of the call
Throws
NullPointerException if the collection or any of its elements are null
UnsupportedOperationException if no default mapped value for additions was provided

clear

Added in API level 24
void clear ()

通过从支持该视图的地图中删除所有映射,从该视图中移除所有元素。

contains

Added in API level 24
boolean contains (Object o)

如果此集合包含指定的元素,则返回true 更正式地说,返回true当且仅当该集合包含至少一个元素e,例如(o==null ? e==null : o.equals(e))

Parameters
o Object: element whose presence in this collection is to be tested
Returns
boolean true if this collection contains the specified element
Throws
NullPointerException if the specified key is null

containsAll

Added in API level 24
boolean containsAll (Collection<?> c)

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

Parameters
c Collection: collection to be checked for containment in this collection
Returns
boolean true if this collection contains all of the elements in the specified collection

equals

Added in API level 24
boolean equals (Object o)

指示其他某个对象是否“等于”这一个。

equals方法在非空对象引用上实现等价关系:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

Objectequals方法实现了对象上最可能的等价关系; 也就是说,对于任何非空参考值xy ,当且仅当xy引用同一对象( x == y的值为true )时,此方法返回true

请注意,无论何时覆盖此方法,通常都必须覆盖 hashCode方法,以便维护 hashCode方法的一般合同,该方法声明相等对象必须具有相同的哈希代码。

Parameters
o Object: the reference object with which to compare.
Returns
boolean true if this object is the same as the obj argument; false otherwise.

forEach

Added in API level 24
void forEach (Consumer<? super K> action)

Parameters
action Consumer

getMap

Added in API level 24
ConcurrentHashMap<K, V> getMap ()

返回支持此视图的地图。

Returns
ConcurrentHashMap<K, V> the map backing this view

getMappedValue

Added in API level 24
V getMappedValue ()

返回添加的默认映射值,如果不支持添加,则返回 null

Returns
V the default mapped value for additions, or null if not supported

hashCode

Added in API level 24
int hashCode ()

返回对象的哈希码值。 为了散列表的好处而支持该方法,例如由HashMap提供的HashMap

hashCode的总合同是:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

尽可能合理实用,类Object定义的hashCode方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java TM编程语言不需要此实现技术。)

Returns
int a hash code value for this object.

isEmpty

Added in API level 24
boolean isEmpty ()

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

Returns
boolean true if this collection contains no elements

iterator

Added in API level 24
Iterator<K> iterator ()

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

返回的迭代器是 weakly consistent

Returns
Iterator<K> an iterator over the keys of the backing map

remove

Added in API level 24
boolean remove (Object o)

通过从备份映射中除去键(及其相应的值),从该映射视图中除去键。 如果该键不在地图中,该方法不执行任何操作。

Parameters
o Object: the key to be removed from the backing map
Returns
boolean true if the backing map contained the specified key
Throws
NullPointerException if the specified key is null

removeAll

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

删除指定集合中包含的所有此集合的元素(可选操作)。 此调用返回后,此集合将不包含与指定集合相同的元素。

Parameters
c Collection: collection containing elements to be removed from this collection
Returns
boolean true if this collection changed as a result of the call

retainAll

Added in API level 24
boolean retainAll (Collection<?> c)

仅保留包含在指定集合中的此集合中的元素(可选操作)。 换句话说,从该集合中删除所有未包含在指定集合中的元素。

Parameters
c Collection: collection containing elements to be retained in this collection
Returns
boolean true if this collection changed as a result of the call

size

Added in API level 24
int size ()

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

Returns
int the number of elements in this collection

spliterator

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

在此集合中的元素上创建一个Spliterator 实现应记录由分割器报告的特征值。 如果分隔符报告SIZED且此集合不包含任何元素,则不需要报告此类特征值。

默认实现应该被可以返回更高效的分割器的子类覆盖。 为了保持stream()parallelStream() }方法的预期惰性行为,分割器应该具有IMMUTABLECONCURRENT的特征,或者是late-binding 如果这些都不切实际,则重写类应描述分割器记录的绑定和结构干扰策略,并应覆盖stream()parallelStream()方法以使用Supplier的Supplier创建流,如下所示:

Stream<E> s = StreamSupport.stream(() -> spliterator(), spliteratorCharacteristics)
 

这些要求确保由 stream()parallelStream()方法产生的流将反映从终端流操作开始时的集合内容。

Returns
Spliterator<K> a Spliterator over the elements in this collection

toArray

Added in API level 24
T[] toArray (T[] a)

返回包含此集合中所有元素的数组; 返回数组的运行时类型是指定数组的运行时类型。 如果集合适合指定的数组,则将其返回。 否则,将使用指定数组的运行时类型和此集合的大小分配一个新数组。

如果此集合符合指定数组并且有空余空间(即数组的元素多于此集合),则紧跟集合结束后的数组中的元素设置为null 只有当调用者知道这个集合不包含任何null元素时,这在确定此集合的长度时非常有用。)

如果此集合对其迭代器返回的元素的顺序做出任何保证,则此方法必须以相同顺序返回元素。

toArray()方法一样,此方法充当基于数组和基于集合的API之间的桥梁。 此外,该方法允许精确控制输出数组的运行时类型,并且在某些情况下可以用于节省分配成本。

假设x是已知只包含字符串的集合。 以下代码可用于将集合转储到新分配的数组String中

     String[] y = x.toArray(new String[0]);
Note that toArray(new Object[0]) is identical in function to toArray().

Parameters
a T: the array into which the elements of this collection are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.
Returns
T[] an array containing all of the elements in this collection

toArray

Added in API level 24
Object[] toArray ()

返回包含此集合中所有元素的数组。 如果此集合对其迭代器返回的元素的顺序做出任何保证,则此方法必须以相同顺序返回元素。

返回的数组将是“安全的”,因为这个集合没有维护它的引用。 (换句话说,即使该集合由数组支持,该方法也必须分配一个新数组)。 调用者可以自由修改返回的数组。

此方法充当基于数组和基于集合的API之间的桥梁。

Returns
Object[] an array containing all of the elements in this collection

toString

Added in API level 24
String toString ()

返回此集合的字符串表示形式。 字符串表示形式由集合元素的字符串表示形式组成,它们按其迭代器返回的顺序包含在方括号( "[]" )中。 相邻元素由字符", " (逗号和空格)分隔。 元素通过valueOf(Object)转换为字符串。

Returns
String a string representation of this collection

Hooray!