- java.lang.Object
-
- java.util.concurrent.ConcurrentHashMap.KeySetView<K,V>
-
- All Implemented Interfaces:
-
Serializable
,Iterable<K>
,Collection<K>
,Set<K>
- Enclosing class:
- ConcurrentHashMap < K , V >
public static class ConcurrentHashMap.KeySetView<K,V> extends Object implements Set<K>, Serializable
ConcurrentHashMap视图为Set
的密钥,其中可以通过映射到公共值来选择添加。 这个类不能直接实例化。 见keySet()
,keySet(V)
,newKeySet()
,newKeySet(int)
。- 从以下版本开始:
- 1.8
- 另请参见:
- Serialized Form
-
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 boolean
add(K e)
通过将键映射到背景映射中的默认映射值(如果已定义),将指定的键添加到此设置视图。boolean
addAll(Collection<? extends K> c)
void
clear()
从该视图中删除所有的元素,通过从支持此视图的地图中删除所有映射。boolean
contains(Object o)
如果此集合包含指定的元素,则返回true
。boolean
containsAll(Collection<?> c)
如果此集合包含指定集合中的所有元素,则返回true
。boolean
equals(Object o)
指示一些其他对象是否等于此。void
forEach(Consumer<? super K> action)
对Iterable
每个元素执行给定的操作,直到所有元素都被处理或动作引发异常。ConcurrentHashMap<K,V>
getMap()
返回支持此视图的地图。V
getMappedValue()
返回添加的默认映射值,如果不支持添加,则返回null
。int
hashCode()
返回对象的哈希码值。boolean
isEmpty()
如果此集合不包含元素,则返回true
。Iterator<K>
iterator()
返回此集合中元素的迭代器。boolean
remove(Object o)
从该地图视图中删除键,方法是从支持地图中删除该键(及其对应的值)。boolean
removeAll(Collection<?> c)
删除指定集合中包含的所有此集合的元素(可选操作)。boolean
retainAll(Collection<?> c)
仅保留此集合中包含在指定集合中的元素(可选操作)。int
size()
返回此集合中的元素数。Spliterator<K>
spliterator()
在此集合中的元素上创建一个Spliterator
。Object[]
toArray()
返回一个包含此集合中所有元素的数组。<T> T[]
toArray(T[] a)
返回一个包含此集合中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型。String
toString()
返回此集合的字符串表示形式。-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream
-
-
-
-
方法详细信息
-
getMappedValue
public V getMappedValue()
返回添加的默认映射值,如果不支持添加,则返回null
。- 结果
-
添加的默认映射值,如果不支持,
null
-
contains
public boolean contains(Object o)
如果此集合包含指定的元素,则返回true
。 更正式地说,返回true
当且仅当这个集合包含至少一个元素e
这样Objects.equals(o, e)
。- Specified by:
-
contains
在接口Collection<K>
- Specified by:
-
contains
在接口Set<K>
- 参数
-
o
- 要在此集合中存在的元素要进行测试 - 结果
-
true
如果此集合包含指定的元素 - 异常
-
NullPointerException
- 如果指定的键为空
-
remove
public boolean remove(Object o)
从该地图视图中删除键,方法是从支持地图中删除该键(及其对应的值)。 如果键不在地图中,此方法不执行任何操作。- Specified by:
-
remove
在接口Collection<K>
- Specified by:
-
remove
在接口Set<K>
- 参数
-
o
- 从背景地图中删除的关键字 - 结果
-
true
如果背景地图包含指定的键 - 异常
-
NullPointerException
- 如果指定的键为空
-
iterator
public Iterator<K> iterator()
返回此集合中元素的迭代器。返回的迭代器是weakly consistent 。
-
add
public boolean add(K e)
通过将键映射到背景映射中的默认映射值(如果已定义),将指定的键添加到此设置视图。- Specified by:
-
add
在接口Collection<K>
- Specified by:
-
add
接口Set<K>
- 参数
-
e
- 要添加的密钥 - 结果
-
true
如果此设置由于呼叫而更改 - 异常
-
NullPointerException
- 如果指定的键为空 -
UnsupportedOperationException
- 如果没有提供添加的默认映射值
-
addAll
public boolean addAll(Collection<? extends K> c)
- Specified by:
-
addAll
在接口Collection<K>
- Specified by:
-
addAll
在接口Set<K>
- 参数
-
c
- 要插入到这个集合中的元素 - 结果
-
true
如果此设置由于呼叫而更改 - 异常
-
NullPointerException
- 如果集合或其任何元素是null
-
UnsupportedOperationException
- 如果没有提供添加的默认映射值 - 另请参见:
-
Set.add(Object)
-
hashCode
public int hashCode()
描述从类别复制:Object
返回对象的哈希码值。 支持这种方法是为了散列表的利益,如HashMap
提供的那样 。hashCode
的总合同是:- 无论何时在执行Java应用程序时多次在同一个对象上调用该对象,则
hashCode
方法必须始终返回相同的整数,前提是修改了对象中equals
比较中的信息。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。 - 如果根据
equals(Object)
方法两个对象相等,则在两个对象中的每个对象上调用hashCode
方法必须产生相同的整数结果。 - 不要求如果两个对象根据
Object.equals(java.lang.Object)
方法不相等,则在两个对象中的每个对象上调用hashCode
方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。
尽可能多的合理实用,由类
Object
定义的hashCode方法确实为不同对象返回不同的整数。 (在某个时间点,hashCode可能或可能不被实现为对象的存储器地址的某些功能。)- Specified by:
-
hashCode
在接口Collection<K>
- Specified by:
-
hashCode
在接口Set<K>
- 重写:
-
hashCode
在Object
- 结果
- 该对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
- 无论何时在执行Java应用程序时多次在同一个对象上调用该对象,则
-
equals
public boolean equals(Object o)
说明从类别复制:Object
指示一些其他对象是否等于此。equals
方法在非空对象引用上实现等价关系:- 自反性 :对于任何非空的参考值
x
,x.equals(x)
应该返回true
。 - 它是对称的 :对于任何非空引用值
x
和y
,x.equals(y)
应该返回true
当且仅当y.equals(x)
回报true
。 - 传递性 :对于任何非空引用值
x
,y
,并z
,如果x.equals(y)
回报true
和y.equals(z)
回报true
,然后x.equals(z)
应该返回true
。 - 一致 :对于任何非空参考值
x
和y
,y
多个调用x.equals(y)
一致地返回true
或始终返回false
,前提是在对象上的equals
比较中未使用的信息被修改。 - 对于任何非空的参考值
x
,x.equals(null)
应该返回false
。
该
equals
类方法Object
实现对象上差别可能性最大的相等关系; 也就是说,对于任何非空参考值x
和y
,当且仅当x
和y
引用相同对象(x == y
具有值true
)时,该方法返回true
。请注意,当覆盖该方法时,通常需要覆盖
hashCode
方法,以便维护hashCode
方法的一般合同,该方法规定相等的对象必须具有相等的哈希码。- Specified by:
-
equals
在接口Collection<K>
- Specified by:
-
equals
在接口Set<K>
- 重写:
-
equals
在Object
- 参数
-
o
- 与之比较的参考对象。 - 结果
-
true
如果此对象与obj参数相同;false
否则。 - 另请参见:
-
Object.hashCode()
,HashMap
- 自反性 :对于任何非空的参考值
-
spliterator
public Spliterator<K> spliterator()
描述从接口Set
复制在此集合中的元素上创建一个Spliterator
。Spliterator
报告Spliterator.DISTINCT
。 实施应记录其他特征值的报告。- Specified by:
-
spliterator
在接口Collection<K>
- Specified by:
-
spliterator
在接口Iterable<K>
- Specified by:
-
spliterator
在接口Set<K>
- 结果
-
一个
Spliterator
在这个集合中的元素
-
forEach
public void forEach(Consumer<? super K> action)
说明从接口Iterable
复制对Iterable
每个元素执行给定的操作,直到所有元素都被处理或者动作引发异常。 如果指定了该顺序,则按迭代的顺序执行操作。 动作抛出的异常被转发给呼叫者。如果操作执行修改元素的基础源的副作用,则该方法的行为是未指定的,除非重写类已指定并发修改策略。
-
getMap
public ConcurrentHashMap<K,V> getMap()
返回支持此视图的地图。- 结果
- 地图支持此视图
-
clear
public final void clear()
从该视图中删除所有的元素,通过从支持此视图的地图中删除所有映射。- Specified by:
-
clear
在接口Collection<K>
-
size
public final int size()
描述从接口Collection
复制返回此集合中的元素数。 如果此集合包含Integer.MAX_VALUE
元素,则返回Integer.MAX_VALUE
。- Specified by:
-
size
在接口Collection<K>
- 结果
- 此集合中的元素数
-
isEmpty
public final boolean isEmpty()
说明从界面Collection
复制如果此集合不包含元素,则返回true
。- Specified by:
-
isEmpty
在接口Collection<K>
- 结果
-
true
如果此集合不包含元素
-
toArray
public final Object[] toArray()
描述从接口Collection
复制返回一个包含此集合中所有元素的数组。 如果此集合对其迭代器返回的元素的顺序做出任何保证,则此方法必须以相同的顺序返回元素。返回的数组将是“安全的”,因为该集合不保留对它的引用。 (换句话说,这个方法必须分配一个新的数组,即使这个集合是由数组支持的)。 因此,调用者可以自由地修改返回的数组。
此方法充当基于阵列和基于集合的API之间的桥梁。
- Specified by:
-
toArray
在接口Collection<K>
- 结果
- 一个包含此集合中所有元素的数组
-
toArray
public final <T> T[] toArray(T[] a)
描述从接口Collection
复制返回一个包含此集合中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型。 如果集合适合指定的数组,则返回其中。 否则,将为指定数组的运行时类型和此集合的大小分配一个新数组。如果此集合适用于指定的数组,并具有空间(即,该数组具有比此集合更多的元素),则紧跟集合结束后的数组中的元素将设置为
null
。 ( 仅当调用者知道此集合不包含任何null
元素时,此方法才有助于确定此集合的长度。)如果此集合对其迭代器返回的元素的顺序做出任何保证,则此方法必须以相同的顺序返回元素。
像
Collection.toArray()
方法一样,此方法充当基于阵列和基于集合的API之间的桥梁。 此外,该方法允许精确地控制输出阵列的运行时类型,并且在某些情况下可以用于节省分配成本。假设
x
是一个已知只包含字符串的集合。 以下代码可用于将集合转储到新分配的String
数组中:String[] y = x.toArray(new String[0]);
请注意,toArray(new Object[0])
功能与toArray()
相同。- Specified by:
-
toArray
在接口Collection<K>
- 参数类型
-
T
- 包含集合的数组的运行时类型 - 参数
-
a
- 要存储此集合的元素的数组,如果它足够大; 否则,为此目的分配相同运行时类型的新数组。 - 结果
- 一个包含此集合中所有元素的数组
-
toString
public final String toString()
返回此集合的字符串表示形式。 字符串表示由集合的元素的字符串表示形式组成,它们由迭代器返回的顺序包含在方括号("[]"
)中。 相邻元素由字符", "
(逗号和空格)分隔。 元素将转换为字符串,如String.valueOf(Object)
。
-
containsAll
public final boolean containsAll(Collection<?> c)
描述从接口Collection
复制如果此集合包含指定集合中的所有元素,则返回true
。- Specified by:
-
containsAll
在接口Collection<K>
- 参数
-
c
- 要在此集合中检查遏制的集合 - 结果
-
true
如果此集合包含指定集合中的所有元素 - 另请参见:
-
Collection.contains(Object)
-
removeAll
public boolean removeAll(Collection<?> c)
描述从接口Collection
复制删除指定集合中包含的所有此集合的元素(可选操作)。 此调用返回后,此集合将不包含与指定集合相同的元素。- Specified by:
-
removeAll
在接口Collection<K>
- 参数
-
c
- 包含要从此集合中删除的元素的集合 - 结果
-
true
如果该收集因呼叫而更改 - 另请参见:
-
Collection.remove(Object)
,Collection.contains(Object)
-
retainAll
public final boolean retainAll(Collection<?> c)
描述从接口Collection
复制仅保留此集合中包含在指定集合中的元素(可选操作)。 换句话说,从该集合中删除所有不包含在指定集合中的元素。- Specified by:
-
retainAll
在接口Collection<K>
- 参数
-
c
- 包含要保留在此集合中的元素的集合 - 结果
-
true
如果该收集因呼叫而更改 - 另请参见:
-
Collection.remove(Object)
,Collection.contains(Object)
-
-