Most visited

Recently visited

Added in API level 1

Set

public interface Set
implements Collection<E>

java.util.Set<E>
Known Indirect Subclasses


一个不包含重复元素的集合。 更正式地,集包含没有对元件e1e2使得e1.equals(e2) ,和至多一个空元素。 正如其名称所暗示的那样,该界面模拟数学抽象。

Set接口放置额外的约定,超过从Collection接口继承,所有构造函数的合同,而位于该add,equalshashCode方法合同。 为方便起见,此处还包括其他继承方法的声明。 (这些声明附带的规范已针对Set界面进行了调整 ,但不包含任何其他规定。)

对构造函数的附加规定毫不奇怪,所有构造函数都必须创建一个不包含重复元素(如上所定义)的集合。

注意:如果可变对象用作集合元素,必须非常小心。 如果对象的值以影响equals比较的方式更改,而对象是该集合中的元素,则不会指定集的行为。 这种禁止的一个特例是,一个集合不允许自己包含一个元素。

某些集合实现对它们可能包含的元素有限制。 例如,有些实现禁止使用空元素,有些实现对元素类型有限制。 尝试添加不合格的元素会引发未检查的异常,通常为NullPointerExceptionClassCastException 尝试查询不合格元素的存在可能会引发异常,或者它可能仅返回false; 一些实现将展现前一种行为,一些将展现后者。 更一般地说,试图对不合格的元素进行操作,其完成不会导致将不合格的元素插入到集合中可能会引发异常,或者可能会成功执行。 这种例外在该接口的规范中被标记为“可选”。

该界面是 Java Collections Framework的成员。

也可以看看:

Summary

Public methods

abstract boolean add(E e)

如果指定的元素尚不存在(可选操作),则将此元素添加到此集合中。

abstract boolean addAll(Collection<? extends E> c)

如果它们尚不存在,则将指定集合中的所有元素添加到此集合(可选操作)。

abstract void clear()

从该组中删除所有元素(可选操作)。

abstract boolean contains(Object o)

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

abstract boolean containsAll(Collection<?> c)

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

abstract boolean equals(Object o)

将指定的对象与此集合进行相等比较。

abstract int hashCode()

返回此集合的哈希码值。

abstract boolean isEmpty()

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

abstract Iterator<E> iterator()

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

abstract boolean remove(Object o)

如果存在(可选操作),则从该集合中删除指定的元素。

abstract boolean removeAll(Collection<?> c)

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

abstract boolean retainAll(Collection<?> c)

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

abstract int size()

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

default Spliterator<E> spliterator()

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

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

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

abstract Object[] toArray()

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

Inherited methods

From interface java.util.Collection
From interface java.lang.Iterable

Public methods

add

Added in API level 1
boolean add (E e)

如果指定的元素尚不存在(可选操作),则将此元素添加到此集合中。 更正式地说,如果该集合不包含元素e2,例如(e==null ? e2==null : e.equals(e2)) ,则将指定的元素e添加到该集合。 如果这个集合已经包含这个元素,那么这个调用就会保持这个集合不变并且返回false 结合对构造函数的限制,这可以确保集合永远不会包含重复的元素。

上述规定并不意味着集合必须接受所有元素; 集合可以拒绝添加任何特定元素,包括null ,并抛出异常,如Collection.add的规范中Collection.add 个别集合的实现应该清楚地记录它们可能包含的元素的任何限制。

Parameters
e E: element to be added to this set
Returns
boolean true if this set did not already contain the specified element
Throws
UnsupportedOperationException if the add operation is not supported by this set
ClassCastException if the class of the specified element prevents it from being added to this set
NullPointerException if the specified element is null and this set does not permit null elements
IllegalArgumentException if some property of the specified element prevents it from being added to this set

addAll

Added in API level 1
boolean addAll (Collection<? extends E> c)

如果它们尚不存在,则将指定集合中的所有元素添加到此集合(可选操作)。 如果指定的集合也是集合,则addAll操作会有效地修改此集合,使其值为两个集合的集。 如果在操作过程中修改了指定的集合,则此操作的行为未定义。

Parameters
c Collection: collection containing elements to be added to this set
Returns
boolean true if this set changed as a result of the call
Throws
UnsupportedOperationException if the addAll operation is not supported by this set
ClassCastException if the class of an element of the specified collection prevents it from being added to this set
NullPointerException if the specified collection contains one or more null elements and this set does not permit null elements, or if the specified collection is null
IllegalArgumentException if some property of an element of the specified collection prevents it from being added to this set

也可以看看:

clear

Added in API level 1
void clear ()

从该组中删除所有元素(可选操作)。 此通话返回后,该设置将为空。

Throws
UnsupportedOperationException if the clear method is not supported by this set

contains

Added in API level 1
boolean contains (Object o)

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

Parameters
o Object: element whose presence in this set is to be tested
Returns
boolean true if this set contains the specified element
Throws
ClassCastException if the type of the specified element is incompatible with this set (optional)
NullPointerException if the specified element is null and this set does not permit null elements (optional)

containsAll

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

如果此集合包含指定集合的所有元素,则返回true 如果指定的集合也是集合,则此方法返回true,如果它是此集合的集。

Parameters
c Collection: collection to be checked for containment in this set
Returns
boolean true if this set contains all of the elements of the specified collection
Throws
ClassCastException if the types of one or more elements in the specified collection are incompatible with this set (optional)
NullPointerException if the specified collection contains one or more null elements and this set does not permit null elements (optional), or if the specified collection is null

也可以看看:

equals

Added in API level 1
boolean equals (Object o)

将指定的对象与此集合进行相等比较。 如果指定的对象也是一个集合,则两个集合具有相同的大小,并且指定集合中的每个成员都包含在此集合中(或等价地,此集合中的每个成员都包含在指定集合中),则返回true 该定义确保equals方法在设置接口的不同实现之间正常工作。

Parameters
o Object: object to be compared for equality with this set
Returns
boolean true if the specified object is equal to this set

hashCode

Added in API level 1
int hashCode ()

返回此集合的哈希码值。 一组的哈希码被定义为在该组中的元素,其中一个null元件的哈希码被定义为零的散列码的总和。 这确保s1.equals(s2)意味着s1.hashCode()==s2.hashCode()适用于任何两套s1s2 ,这是根据hashCode()总合同的hashCode()

Returns
int the hash code value for this set

也可以看看:

isEmpty

Added in API level 1
boolean isEmpty ()

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

Returns
boolean true if this set contains no elements

iterator

Added in API level 1
Iterator<E> iterator ()

返回此集合中元素的迭代器。 这些元素以特定的顺序返回(除非这个集合是某个提供担保的类的实例)。

Returns
Iterator<E> an iterator over the elements in this set

remove

Added in API level 1
boolean remove (Object o)

如果存在(可选操作),则从该集合中删除指定的元素。 更正式地说,删除一个元素e,例如(o==null ? e==null : o.equals(e)) ,如果这个集合包含这样的元素。 如果该集合包含该元素(或者等价地,如果该集合因该调用而改变),则返回true (一旦调用返回,此集合将不包含该元素。)

Parameters
o Object: object to be removed from this set, if present
Returns
boolean true if this set contained the specified element
Throws
ClassCastException if the type of the specified element is incompatible with this set (optional)
NullPointerException if the specified element is null and this set does not permit null elements (optional)
UnsupportedOperationException if the remove operation is not supported by this set

removeAll

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

从该集合中删除指定集合中包含的所有元素(可选操作)。 如果指定的集合也是集合,则此操作会有效地修改此集合,使其值为两个集合的不对称集合差异

Parameters
c Collection: collection containing elements to be removed from this set
Returns
boolean true if this set changed as a result of the call
Throws
UnsupportedOperationException if the removeAll operation is not supported by this set
ClassCastException if the class of an element of this set is incompatible with the specified collection (optional)
NullPointerException if this set contains a null element and the specified collection does not permit null elements (optional), or if the specified collection is null

也可以看看:

retainAll

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

只保留包含在指定集合中的元素(可选操作)。 换句话说,从该集合中删除所有未包含在指定集合中的元素。 如果指定的集合也是集合,则此操作将有效地修改此集合,使其值为两个集合的交集

Parameters
c Collection: collection containing elements to be retained in this set
Returns
boolean true if this set changed as a result of the call
Throws
UnsupportedOperationException if the retainAll operation is not supported by this set
ClassCastException if the class of an element of this set is incompatible with the specified collection (optional)
NullPointerException if this set contains a null element and the specified collection does not permit null elements (optional), or if the specified collection is null

也可以看看:

size

Added in API level 1
int size ()

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

Returns
int the number of elements in this set (its cardinality)

spliterator

Spliterator<E> spliterator ()

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

Spliterator报告DISTINCT 实施应记录附加特征值的报告。

实现要求:
  • The default implementation creates a late-binding spliterator from the set's Iterator. The spliterator inherits the fail-fast properties of the set's iterator.

    创建的 Spliterator另外报告 SIZED

Implementation Note:
  • The created Spliterator additionally reports SUBSIZED.
Returns
Spliterator<E> a Spliterator over the elements in this set

toArray

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

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

如果这个集合符合指定数组,并且有空余空间(即,数组的元素多于这个集合),那么紧跟在集合结束之后的数组中的元素将被设置为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 set 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 the elements in this set
Throws
ArrayStoreException if the runtime type of the specified array is not a supertype of the runtime type of every element in this set
NullPointerException if the specified array is null

toArray

Added in API level 1
Object[] toArray ()

返回包含此集合中所有元素的数组。 如果这个集合保证它的迭代器返回它的元素的顺序,这个方法必须以相同的顺序返回元素。

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

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

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

Hooray!