Most visited

Recently visited

Added in API level 1

AbstractSet

public abstract class AbstractSet
extends AbstractCollection<E> implements Set<E>

java.lang.Object
   ↳ java.util.AbstractCollection<E>
     ↳ java.util.AbstractSet<E>
Known Direct Subclasses
Known Indirect Subclasses


该类提供了 Set接口的骨架实现,以最大限度地减少实现此接口所需的工作量。

通过扩展此类来实现集合的过程与通过扩展AbstractCollection来实现集合的过程相同,除了此类的所有子类中的所有方法和构造函数都必须遵守 Set接口施加的附加约束(例如,添加方法不得允许将一个对象的多个实例添加到一个集合中)。

请注意,此类不会覆盖AbstractCollection类中的任何实现。 它只是增加了equalshashCode的实现

本课是 Java Collections Framework的成员。

也可以看看:

Summary

Protected constructors

AbstractSet()

唯一的构造函数。

Public methods

boolean equals(Object o)

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

int hashCode()

返回此集合的哈希码值。

boolean removeAll(Collection<?> c)

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

Inherited methods

From class java.util.AbstractCollection
From class java.lang.Object
From interface java.util.Collection
From interface java.util.Set
From interface java.lang.Iterable

Protected constructors

AbstractSet

Added in API level 1
AbstractSet ()

唯一的构造函数。 (对于子类构造函数的调用,通常是隐式的。)

Public methods

equals

Added in API level 1
boolean equals (Object o)

将指定的对象与此集合进行相等比较。 如果给定对象也是一个集合,则返回true ,这两个集合具有相同的大小,并且给定集合中的每个成员都包含在此集合中。 这确保了equals方法在Set接口的不同实现中正常工作。

这个实现首先检查指定的对象是否是这个集合; 如果是这样,则返回true 然后,它检查指定的对象是否与其集合的大小相同; 如果不是,则返回false。 如果是,则返回containsAll((Collection) o)

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

也可以看看:

removeAll

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

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

此实现通过对每个方法调用size方法来确定此集合和指定集合中的哪一个较小。 如果这个集合中的元素数量较少,那么实现将遍历该集合,依次检查迭代器返回的每个元素,以查看它是否包含在指定集合中。 如果包含它,则使用迭代器的remove方法将其从此集中删除。 如果指定集合的元素较少,那么实现迭代指定的集合,使用该集合的remove方法从该集合中除去迭代器返回的每个元素。

注意,此实现将抛出 UnsupportedOperationException如果由 iterator方法返回的迭代器没有实现 remove方法。

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

也可以看看:

Hooray!