public static class ConcurrentHashMap.KeySetView<K,V> extends Object implements Set<K>, Serializable
Set
的键,其中可以通过映射到公共值来启用添加。
这个类不能直接实例化。
见keySet()
, keySet(V)
, newKeySet()
, newKeySet(int)
。
Modifier and Type | Method and Description |
---|---|
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()
返回此集合的字符串表示形式。
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
clear, containsAll, isEmpty, removeAll, retainAll, size, toArray, toArray
parallelStream, removeIf, stream
public V getMappedValue()
null
,如果增加不被支持。
null
如果不支持
public boolean contains(Object o)
contains
在界面
Collection<K>
contains
在界面
Set<K>
o
- 要在此集合中存在的元素要进行测试
NullPointerException
- 如果指定的键为空
public boolean remove(Object o)
remove
在界面
Collection<K>
remove
在界面
Set<K>
o
- 从背景地图中删除的关键
true
如果支持地图包含指定的键
NullPointerException
- 如果指定的键为空
public Iterator<K> iterator()
返回的迭代器是weakly consistent 。
public boolean add(K e)
add
在接口
Collection<K>
add
在界面
Set<K>
e
- 要添加的关键字
true
如果此设置由于呼叫而更改
NullPointerException
- 如果指定的键为空
UnsupportedOperationException
- 如果没有提供添加的默认映射值
public boolean addAll(Collection<? extends K> c)
addAll
在接口
Collection<K>
addAll
在界面
Set<K>
c
- 要插入到此集合中的元素
true
如果此设置由于呼叫而更改
NullPointerException
- 如果集合或其任何元素是
null
UnsupportedOperationException
- 如果没有提供添加的默认映射值
Set.add(Object)
public int hashCode()
Object
复制
HashMap
所提供的那样 。
hashCode
的总合同是:
hashCode
方法必须始终返回相同的整数,前提是修改了对象中equals
比较中的信息。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。 equals(Object)
方法两个对象相等,则在两个对象中的每个对象上调用hashCode
方法必须产生相同的整数结果。 Object.equals(java.lang.Object)
方法不相等,则在两个对象中的每一个上调用hashCode
方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。 尽可能多的合理实用,由类Object
定义的hashCode方法确实为不同对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java的编程语言不需要此实现技术。)
hashCode
在接口
Collection<K>
hashCode
在界面
Set<K>
hashCode
在类别
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
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
,多次调用x.equals(y)
始终返回true
或始终返回false
,没有设置中使用的信息equals
比较上的对象被修改。 x
, x.equals(null)
应该返回false
。 该equals
类方法Object
实现对象上差别可能性最大的相等关系; 也就是说,对于任何非空参考值x
和y
,当且仅当x
和y
引用同一对象( x == y
具有值true
)时,此方法返回true
。
请注意,当覆盖该方法时,通常需要覆盖hashCode
方法,以便维护hashCode
方法的通用合同,该方法规定相等的对象必须具有相等的哈希码。
equals
在界面
Collection<K>
equals
在界面
Set<K>
equals
在类别
Object
o
- 与之比较的参考对象。
true
如果此对象与obj参数相同;
false
否则。
Object.hashCode()
, HashMap
public Spliterator<K> spliterator()
Set
复制
Spliterator
。
Spliterator
报告Spliterator.DISTINCT
。 实施应记录其他特征值的报告。
spliterator
在界面
Iterable<K>
spliterator
在界面
Collection<K>
spliterator
在界面
Set<K>
Spliterator
在这个集合中的元素
public void forEach(Consumer<? super K> action)
Iterable
复制
Iterable
的每个元素执行给定的操作,直到所有元素都被处理或者动作引发异常。
除非实现类另有规定,否则按照迭代的顺序执行操作(如果指定了迭代顺序)。
动作抛出的异常被转发给呼叫者。
public ConcurrentHashMap<K,V> getMap()
public final void clear()
clear
在界面
Collection<E>
public final int size()
Collection
复制
size
在界面
Collection<E>
public final boolean isEmpty()
Collection
复制
isEmpty
在界面
Collection<E>
public final Object[] toArray()
Collection
复制
返回的数组将是“安全的”,因为该集合不保留对它的引用。 (换句话说,这个方法必须分配一个新的数组,即使这个集合是由数组支持的)。 因此,调用者可以自由地修改返回的数组。
此方法充当基于阵列和基于集合的API之间的桥梁。
toArray
在界面
Collection<E>
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()相同 。
toArray
在接口
Collection<E>
T
- 包含集合的数组的运行时类型
a
- 要a
该集合的元素的数组,如果它足够大;
否则,为此目的分配相同运行时类型的新数组。
public final String toString()
"[]"
)中。
相邻元素由字符", "
(逗号和空格)分隔。
元素被转换为字符串由String.valueOf(Object)
。
public final boolean containsAll(Collection<?> c)
Collection
复制
containsAll
在界面
Collection<E>
c
- 要在此集合中检查遏制的集合
Collection.contains(Object)
public final boolean removeAll(Collection<?> c)
Collection
复制
removeAll
在界面
Collection<E>
c
- 包含要从此集合中删除的元素的集合
Collection.remove(Object)
,
Collection.contains(Object)
public final boolean retainAll(Collection<?> c)
Collection
复制
retainAll
在界面
Collection<E>
c
- 包含要保留在此集合中的元素的集合
Collection.remove(Object)
,
Collection.contains(Object)