E
-元素这一套保持型
public interface Set<E> extends Collection<E>
e1
和
e2
这样
e1.equals(e2)
,最多一个空元素。正如它的名字所暗示的,这个接口模型的数学设置抽象。
Set接口的地方补充规定,除了那些从Collection接口继承,对所有施工合同和对add合同,equals和hashCode方法。为方便起见,也包括其他继承方法的声明。(伴随这些声明的规格已经根据Set接口,但它们不包含任何额外的规定。)
对构造函数的附加约束,也不奇怪,所有的构造函数必须创建一个包含没有重复元素的集合(如上所定义)。
注意:必须非常小心行使如果使用可变对象作为集合元素。一个集合的行为不是一个对象的值是以影响equals比较在对象集合中的指定元素变化。此禁令的一个特殊情况是,它是不允许一组包含本身作为一个元素。
某些设置的实现对它们可能包含的元素有限制。例如,一些实现禁止空元素,并且一些实现对它们的元素的类型有限制。试图插入一个不合适的元素会抛出未检查异常,通常NullPointerException或ClassCastException。试图查询一个不合适的元素的存在可能会抛出一个异常,也可能返回false;有些实现会表现出以前的行为和表现出后者。更普遍的是,试图在一个不合格的操作元素的完成将不会导致一个不合格的元件插入集可能会抛出一个异常,也可能是成功的,在实施期权。这样的异常被标记为“可选”在该接口的规范中。
该接口的 Java Collections Framework成员。
Collection
,
List
,
SortedSet
,
HashSet
,
TreeSet
,
AbstractSet
,
Collections.singleton(java.lang.Object)
,
Collections.EMPTY_SET
Modifier and Type | Method and Description |
---|---|
boolean |
add(E e)
如果没有当前(可选操作),则将指定的元素添加到该集合中。
|
boolean |
addAll(Collection<? extends E> c)
如果没有当前(可选操作),将指定集合中的所有元素添加到该集合中。
|
void |
clear()
从这个集合中移除所有的元素(可选操作)。
|
boolean |
contains(Object o)
如果这套
true返回包含指定的元素。
|
boolean |
containsAll(Collection<?> c)
如果这套
true返回包含指定集合的所有元素。
|
boolean |
equals(Object o)
将指定的对象与此设置的相等性进行比较。
|
int |
hashCode()
返回此组的哈希代码值。
|
boolean |
isEmpty()
返回
true如果这个集合不包含元素。
|
Iterator<E> |
iterator()
返回此集合中元素的迭代器。
|
boolean |
remove(Object o)
如果当前(可选操作),则从该集合中移除指定的元素。
|
boolean |
removeAll(Collection<?> c)
从这个集合中移除包含在指定集合中的所有元素(可选操作)。
|
boolean |
retainAll(Collection<?> c)
仅保留包含在指定集合中的此集合中的元素(可选操作)。
|
int |
size()
返回该集合中元素个数(其基数)。
|
default Spliterator<E> |
spliterator()
在这个集合中的元素创建一个
Spliterator 。
|
Object[] |
toArray()
返回一个包含此集合中所有元素的数组。
|
<T> T[] |
toArray(T[] a)
返回包含此集合中的所有元素的数组;返回的数组的运行时类型是指定的数组的运行时类型。
|
parallelStream, removeIf, stream
int size()
size
接口
Collection<E>
boolean isEmpty()
isEmpty
接口
Collection<E>
boolean contains(Object o)
contains
接口
Collection<E>
o
-这个集合中存在的元素进行测试
ClassCastException
-如果指定元素的类型与设置不兼容(
optional)
NullPointerException
-如果指定元素为null,这套不允许null元素(
optional)
Object[] toArray()
返回的数组将是“安全”的,没有引用它是由这个设置。换句话说,这种方法必须分配一个新的数组,即使这个集合是由一个数组的支持。因此,调用方可以自由修改返回的数组。
此方法作为基于数组和基于集合的原料药之间的桥梁。
toArray
接口
Collection<E>
<T> T[] toArray(T[] a)
如果这一套适合指定数组中剩余的空间(即数组有比这个设置更多的元素),在阵列的设置结束后立即的元素设置为null。(这是有用的在确定这套只有长度如果调用者知道这集不包含任何无效的元素。)
如果此集对迭代器返回的顺序有任何保证,则该方法必须以相同的顺序返回元素。
像toArray()
方法,该方法作为之间的桥梁,基于阵列和基于集合API。此外,该方法允许对输出数组的运行时类型的精确控制,并在某些情况下,可用于节省分配成本。
假设x是一组已知仅包含字符串。下面的代码可以用来堆集到新分配的数组String:
字符串[] y = x.toarray(新弦[ 0 ]);注意 toArray(new Object[0])是相同的功能, toArray()。
toArray
接口
Collection<E>
T
-数组的运行时类型包含集合
a
-在这个集合中的元素被存储数组,如果它足够大;否则,一个新的运行时类型相同的数组分配给这个目的。
ArrayStoreException
-如果指定数组的运行时类型不是超set中每个元素运行时类型
NullPointerException
-如果指定的数组是空的
boolean add(E e)
以上的规定并不意味着必须接受所有元素;集可能不添加任何特定的元素,包括null,并抛出一个异常,如说明书中所描述的Collection.add
。单独的设置实现应该清楚地记录他们可能包含的元素的任何限制。
add
接口
Collection<E>
e
元素被添加到这个组
UnsupportedOperationException
-如果
add操作set不支持
ClassCastException
-如果指定元素类型阻止其加入集
NullPointerException
-如果指定元素为null,这套不允许null元素
IllegalArgumentException
-如果指定元素的一些特性阻止其加入集
boolean remove(Object o)
remove
接口
Collection<E>
o
对象要从组中删除,如果存在
ClassCastException
-如果指定元素的类型与设置不兼容(
optional)
NullPointerException
-如果指定元素为null,这套不允许null元素(
optional)
UnsupportedOperationException
-如果
remove操作set不支持
boolean containsAll(Collection<?> c)
containsAll
接口
Collection<E>
c
采集被检查这套壳
ClassCastException
-如果指定集合的一个或多个元素的类型与此设置不兼容(
optional)
NullPointerException
-如果指定集合包含一个或多个null元素而设置不允许null元素(
optional),或者指定集合为空
contains(Object)
boolean addAll(Collection<? extends E> c)
addAll
接口
Collection<E>
c
收集含有元素被添加到这个组
UnsupportedOperationException
-如果
addAll操作set不支持
ClassCastException
-如果指定集合的元素的类,防止它被添加到这个组
NullPointerException
-如果指定集合包含一个或多个null元素而设置不允许null元素,或者指定集合为空
IllegalArgumentException
-如果指定集合的一个元素的一些特性阻止其加入集
add(Object)
boolean retainAll(Collection<?> c)
retainAll
接口
Collection<E>
c
收集包含元素被保留在这套
UnsupportedOperationException
-如果
retainAll操作set不支持
ClassCastException
-如果这个集合的元素的类与集合不相容(
optional)
NullPointerException
-如果这套包含一个null元素而指定集合不允许null元素(
optional),或者指定集合为空
remove(Object)
boolean removeAll(Collection<?> c)
removeAll
接口
Collection<E>
c
收集包含元素要从集合中移除
UnsupportedOperationException
-如果
removeAll操作set不支持
ClassCastException
-如果这个集合的元素的类与集合不相容(
optional)
NullPointerException
-如果这套包含一个null元素而指定集合不允许null元素(
optional),或者指定集合为空
remove(Object)
,
contains(Object)
void clear()
clear
接口
Collection<E>
UnsupportedOperationException
-如果
clear方法set不支持
boolean equals(Object o)
equals
接口
Collection<E>
equals
方法重写,继承类
Object
o
对象进行比较,用这套平等
Object.hashCode()
,
HashMap
int hashCode()
Object.hashCode()
一般合同要求。
hashCode
接口
Collection<E>
hashCode
方法重写,继承类
Object
Object.equals(Object)
,
equals(Object)
default Spliterator<E> spliterator()
Spliterator
。
该报告Spliterator.DISTINCT
Spliterator
。实现应该记录额外的特征值的报告。
spliterator
接口
Collection<E>
spliterator
接口
Iterable<E>
Iterator
后期绑定spliterator。的spliterator继承快速失败性质的集合的迭代器。
创建Spliterator
另外报道Spliterator.SIZED
。
Spliterator
另外报道
Spliterator.SUBSIZED
。
Spliterator
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.