Set 包/类/方法中文说明
方法详细信息
size int size()
返回此集合中的元素数(基数)。
如果此集包含超过Integer.MAX_VALUE元素,则返回Integer.MAX_VALUE 。
Specified by:
size接口
Collection
结果
此集合中的元素数量(基数)
isEmpty boolean isEmpty()
如果此集合不包含任何元素,则返回
true 。
Specified by:
isEmpty接口
Collection
结果
true如果此集合不包含任何元素
contains boolean contains(Object o)
如果此set包含指定的元素,则返回true 。
更正式地说,返回true当且仅当此set包含的元素e ,使得Objects.equals(o, e) 。
Specified by:
contains在界面
Collection
参数
o - 要测试其在此集合中的存在的元素
结果
true如果此集包含指定的元素
异常
ClassCastException - 如果指定元素的类型与此集不兼容(
optional )
NullPointerException - 如果指定的元素为null且此set不允许null元素(
optional )
iterator Iterator
返回此set中元素的迭代器。
元素以无特定顺序返回(除非此集合是某个提供保证的类的实例)。
Specified by:
iterator在界面
Collection
Specified by:
iterator接口
Iterable
结果
这个集合中元素的迭代器
toArray Object[] toArray()
返回包含此set中所有元素的数组。
如果此set对其迭代器返回的元素的顺序做出任何保证,则此方法必须以相同的顺序返回元素。
返回的数组将是“安全的”,因为该集合不维护对它的引用。 (换句话说,即使此数组由数组支持,此方法也必须分配一个新数组)。 因此调用者可以自由修改返回的数组。
此方法充当基于阵列和基于集合的API之间的桥梁。
Specified by:
toArray接口
Collection
结果
包含此集合中所有元素的数组
toArray
返回一个包含此set中所有元素的数组;
返回数组的运行时类型是指定数组的运行时类型。
如果集合适合指定的数组,则返回其中。
否则,将使用指定数组的运行时类型和此set的大小分配新数组。
如果此集合适合指定的数组,并且有空余空间(即,数组的元素多于此集合),则紧跟集合结尾的数组中的元素将设置为null 。 ( 仅当调用者知道此集合不包含任何null元素时,这在确定此集合的长度时很有用。)
如果此set对其迭代器返回的元素的顺序做出任何保证,则此方法必须以相同的顺序返回元素。
与toArray()方法一样,此方法充当基于阵列和基于集合的API之间的桥梁。 此外,该方法允许精确控制输出阵列的运行时类型,并且在某些情况下可以用于节省分配成本。
假设x是已知仅包含字符串的集合。 以下代码可用于将集合转储到新分配的String数组中:
String[] y = x.toArray(new String[0]);
请注意, toArray(new Object[0])功能与toArray()相同。
Specified by:
toArray接口
Collection
参数类型
T - 要包含集合的数组的组件类型
参数
a - 要存储此集合的元素的数组(如果它足够大);
否则,为此目的分配相同运行时类型的新数组。
结果
包含此集合中所有元素的数组
异常
ArrayStoreException - 如果指定数组的运行时类型不是此集合中每个元素的运行时类型的超类型
NullPointerException - 如果指定的数组为null
add boolean add(E e)
如果指定的元素尚不存在,则将其添加到此集合(可选操作)。
更正式地说,如果集合中不包含元素e2 , Objects.equals(e, e2)指定的元素e添加到此集合中,如Objects.equals(e, e2) 。
如果此set已包含该元素,则调用将保持set不变并返回false 。
结合对构造函数的限制,这可以确保集合永远不会包含重复元素。
上述规定并不意味着集合必须接受所有要素; sets可以拒绝添加任何特定元素,包括null ,并抛出异常,如Collection.add的规范中所述 。 单个集合实现应清楚地记录对它们可能包含的元素的任何限制。
Specified by:
add接口
Collection
参数
e - 要添加到此集合的元素
结果
true如果此集合尚未包含指定的元素
异常
UnsupportedOperationException - 如果此集合不支持
add操作
ClassCastException - 如果指定元素的类阻止将其添加到此集合中
NullPointerException - 如果指定的元素为null且此set不允许null元素
IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此集合中
remove boolean remove(Object o)
如果存在,则从该集合中移除指定的元素(可选操作)。
更正式地,如果该集合包含这样的元素,则移除元素e ,使得Objects.equals(o, e) 。
如果此集合包含元素,则返回true (或等效地,如果此集合因调用而更改)。
(一旦调用返回,该集合将不包含该元素。)
Specified by:
remove接口
Collection
参数
o - 要从此集合中删除的对象(如果存在)
结果
true如果此set包含指定的元素
异常
ClassCastException - 如果指定元素的类型与此集不兼容(
optional )
NullPointerException - 如果指定的元素为null且此set不允许null元素(
optional )
UnsupportedOperationException - 如果此集合不支持
remove操作
containsAll boolean containsAll(Collection> c)
如果此集合包含指定集合的所有元素,则返回true 。
如果指定的集合也是集合,则此方法返回true如果它是此集合的子集)。
Specified by:
containsAll接口
Collection
参数
c - 要检查此集合中的包含的集合
结果
true如果此集包含指定集合的所有元素
异常
ClassCastException - 如果指定集合中的一个或多个元素的类型与此集不兼容(
optional )
NullPointerException - 如果指定的集合包含一个或多个null元素,并且此set不允许null元素(
optional ),或者指定的集合为null
另请参见:
contains(Object)
addAll boolean addAll(Collection extends E> c)
如果指定集合中的所有元素尚未存在(可选操作),则将其添加到此集合中。
如果指定的集合也是一个集合,则addAll操作会有效地修改此集合,以使其值为两个集合的并集。
如果在操作正在进行时修改了指定的集合,则此操作的行为是不确定的。
Specified by:
addAll接口
Collection
参数
c - 包含要添加到此集合的元素的集合
结果
true如果此设置因呼叫而更改
异常
UnsupportedOperationException - 如果此集合不支持
addAll操作
ClassCastException - 如果指定集合的元素的类阻止将其添加到此集合中
NullPointerException - 如果指定的集合包含一个或多个null元素,并且此集合不允许null元素,或者指定的集合为null
IllegalArgumentException - 如果指定集合的某个元素的某些属性阻止将其添加到此集合中
另请参见:
add(Object)
retainAll boolean retainAll(Collection> c)
仅保留此集合中包含在指定集合中的元素(可选操作)。
换句话说,从该集合中删除未包含在指定集合中的所有元素。
如果指定的集合也是一个集合,则此操作会有效地修改此集合,使其值为两个集合的交集 。
Specified by:
retainAll在界面
Collection
参数
c - 包含要在此集中保留的元素的集合
结果
true如果此设置因呼叫而更改
异常
UnsupportedOperationException - 如果此集合不支持
retainAll操作
ClassCastException - 如果此集合的元素的类与指定的集合不兼容(
optional )
NullPointerException - 如果此set包含null元素且指定的collection不允许null元素(
optional ),或者指定的collection是null
另请参见:
remove(Object)
removeAll boolean removeAll(Collection> c)
从此集合中删除指定集合中包含的所有元素(可选操作)。
如果指定的集合也是一个集合,则此操作会有效地修改此集合,以使其值为两个集合的不对称集合差异 。
Specified by:
removeAll接口
Collection
参数
c - 包含要
c集合中删除的元素的集合
结果
true如果此设置因呼叫而更改
异常
UnsupportedOperationException - 如果此集合不支持
removeAll操作
ClassCastException - 如果此集合的元素的类与指定的集合不兼容(
optional )
NullPointerException - 如果此set包含null元素且指定的collection不允许null元素(
optional ),或者指定的collection是null
另请参见:
remove(Object) ,
contains(Object)
clear void clear()
从该集合中删除所有元素(可选操作)。
此调用返回后,该集将为空。
Specified by:
clear接口
Collection
异常
UnsupportedOperationException - 如果此集不支持
clear方法
equals boolean equals(Object o)
将指定对象与此set进行相等性比较。
如果指定的对象也是一个集合,则返回true ,这两个集合具有相同的大小,并且指定集合的每个成员都包含在此集合中(或者等效地,此集合的每个成员都包含在指定的集合中)。
此定义确保equals方法在set接口的不同实现中正常工作。
Specified by:
equals接口
Collection
重写:
equals在类
Object
参数
o - 要与此集进行相等性比较的对象
结果
true如果指定的对象等于此set
另请参见:
Object.hashCode() , HashMap
hashCode int hashCode()
返回此set的哈希码值。
集合的哈希码被定义为集合中元素的哈希码的总和,其中null元素的哈希码被定义为零。
这确保了s1.equals(s2)暗示s1.hashCode()==s2.hashCode()对于任何两组s1和s2 ,如s2的一般合同所要求的那样 。
Specified by:
hashCode接口
Collection
重写:
hashCode类
Object
结果
此集的哈希码值
另请参见:
Object.equals(Object) ,
equals(Object)
spliterator default Spliterator
在此集合中的元素上创建Spliterator 。
Spliterator报告Spliterator.DISTINCT 。 实施应记录其他特征值的报告。
Specified by:
spliterator接口
Collection
Specified by:
spliterator接口
Iterable
实现要求:
默认实现从集合Iterator创建late-binding分裂Iterator 。
spliterator继承了set迭代器的fail-fast属性。
创建的Spliterator另外报告Spliterator.SIZED 。
Implementation Note:
创建的
Spliterator另外报告
Spliterator.SUBSIZED 。
结果
一组
Spliterator
从以下版本开始:
1.8
of static
返回包含零元素的不可修改集。
有关详细信息,请参阅Unmodifiable Sets 。
参数类型
E -
Set的元素类型
结果
空的
Set
从以下版本开始:
9
of static
返回包含一个元素的不可修改集。
有关详细信息,请参阅Unmodifiable Sets 。
参数类型
E -
Set的元素类型
参数
e1 - 单个元素
结果
包含指定元素的
Set
异常
NullPointerException - 如果元素是
null
从以下版本开始:
9
of static
E e2)
返回包含两个元素的不可修改集。
有关详细信息,请参见Unmodifiable Sets 。
参数类型
E -
Set的元素类型
参数
e1 - 第一个元素
e2 - 第二个元素
结果
包含指定元素的
Set
异常
IllegalArgumentException - 如果元素是重复的
NullPointerException - 如果元素是
null
从以下版本开始:
9
of static
E e2,
E e3)
返回包含三个元素的不可修改集。
有关详细信息,请参阅Unmodifiable Sets 。
参数类型
E -
Set的元素类型
参数
e1 - 第一个元素
e2 - 第二个元素
e3 - 第三个要素
结果
包含指定元素的
Set
异常
IllegalArgumentException - 如果有任何重复的元素
NullPointerException - 如果元素是
null
从以下版本开始:
9
of static
E e2,
E e3,
E e4)
返回包含四个元素的不可修改集。
有关详细信息,请参阅Unmodifiable Sets 。
参数类型
E -
Set的元素类型
参数
e1 - 第一个元素
e2 - 第二个元素
e3 - 第三个要素
e4 - 第四个要素
结果
包含指定元素的
Set
异常
IllegalArgumentException - 如果有任何重复的元素
NullPointerException - 如果元素是
null
从以下版本开始:
9
of static
E e2,
E e3,
E e4,
E e5)
返回包含五个元素的不可修改集。
有关详细信息,请参阅Unmodifiable Sets 。
参数类型
E -
Set的元素类型
参数
e1 - 第一个元素
e2 - 第二个元素
e3 - 第三个要素
e4 - 第四个要素
e5 - 第五个元素
结果
包含指定元素的
Set
异常
IllegalArgumentException - 如果有任何重复的元素
NullPointerException - 如果元素是
null
从以下版本开始:
9
of static
E e2,
E e3,
E e4,
E e5,
E e6)
返回包含六个元素的不可修改集。
有关详细信息,请参阅Unmodifiable Sets 。
参数类型
E -
Set的元素类型
参数
e1 - 第一个元素
e2 - 第二个元素
e3 - 第三个要素
e4 - 第四个要素
e5 - 第五个元素
e6 - 第六个元素
结果
包含指定元素的
Set
异常
IllegalArgumentException - 如果有任何重复的元素
NullPointerException - 如果元素是
null
从以下版本开始:
9
of static
E e2,
E e3,
E e4,
E e5,
E e6,
E e7)
返回包含七个元素的不可修改集。
有关详细信息,请参阅Unmodifiable Sets 。
参数类型
E -
Set的元素类型
参数
e1 - 第一个元素
e2 - 第二个元素
e3 - 第三个要素
e4 - 第四个要素
e5 - 第五个元素
e6 - 第六个元素
e7 - 第七个元素
结果
包含指定元素的
Set
异常
IllegalArgumentException - 如果有任何重复的元素
NullPointerException - 如果元素是
null
从以下版本开始:
9
of static
E e2,
E e3,
E e4,
E e5,
E e6,
E e7,
E e8)
返回包含八个元素的不可修改集。
有关详细信息,请参阅Unmodifiable Sets 。
参数类型
E -
Set的元素类型
参数
e1 - 第一个元素
e2 - 第二个元素
e3 - 第三个要素
e4 - 第四个要素
e5 - 第五个元素
e6 - 第六个元素
e7 - 第七个元素
e8 - 第八个元素
结果
包含指定元素的
Set
异常
IllegalArgumentException - 如果有任何重复的元素
NullPointerException - 如果元素是
null
从以下版本开始:
9
of static
E e2,
E e3,
E e4,
E e5,
E e6,
E e7,
E e8,
E e9)
返回包含九个元素的不可修改集。
有关详细信息,请参阅Unmodifiable Sets 。
参数类型
E -
Set的元素类型
参数
e1 - 第一个元素
e2 - 第二个元素
e3 - 第三个要素
e4 - 第四个要素
e5 - 第五个元素
e6 - 第六个元素
e7 - 第七个元素
e8 - 第八个元素
e9 - 第九个元素
结果
包含指定元素的
Set
异常
IllegalArgumentException - 如果有任何重复的元素
NullPointerException - 如果元素是
null
从以下版本开始:
9
of static
E e2,
E e3,
E e4,
E e5,
E e6,
E e7,
E e8,
E e9,
E e10)
返回包含十个元素的不可修改集。
有关详细信息,请参见Unmodifiable Sets 。
参数类型
E -
Set的元素类型
参数
e1 - 第一个元素
e2 - 第二个元素
e3 - 第三个要素
e4 - 第四个要素
e5 - 第五个元素
e6 - 第六个元素
e7 - 第七个要素
e8 - 第八个元素
e9 - 第九个元素
e10 - 第十个元素
结果
包含指定元素的
Set
异常
IllegalArgumentException - 如果有任何重复的元素
NullPointerException - 如果元素是
null
从以下版本开始:
9
of @SafeVarargs
static
返回包含任意数量元素的不可修改集。
有关详细信息,请参阅Unmodifiable Sets 。
API Note:
此方法还接受单个数组作为参数。
结果集的元素类型将是数组的组件类型,并且集的大小将等于数组的长度。
要使用作为数组的单个元素创建集,请执行以下操作:
String[] array = ... ; Set
这将导致调用Set.of(E)方法。
参数类型
E -
Set的元素类型
参数
elements - 要包含在集合中的元素
结果
包含指定元素的
Set
异常
IllegalArgumentException - 如果有任何重复的元素
NullPointerException - 如果元素是
null或者数组是
null
从以下版本开始:
9
copyOf static
返回包含给定Collection的元素的unmodifiable Set 。
给定的Collection不能为null,并且不能包含任何null元素。
如果给定的Collection包含重复元素,则保留重复项的任意元素。
如果随后修改了给定的Collection,则返回的Set将不会反映此类修改。
Implementation Note:
如果给定的Collection是
unmodifiable Set ,则调用copyOf通常不会创建副本。
参数类型
E -
Set的元素类型
参数
coll -
Collection绘制元素的
Collection必须为非null
结果
Set包含给定
Collection的元素
异常
NullPointerException - 如果coll为null,或者它包含任何空值
从以下版本开始:
10