java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<E>
- 类型参数:
-
E
- 此集合中维护的元素类型
- 所有实现的接口:
-
Iterable<E>
,Collection<E>
,Set<E>
- 直接已知的子类:
-
ConcurrentSkipListSet
,CopyOnWriteArraySet
,EnumSet
,HashSet
,TreeSet
此类提供了
Set
接口的骨架实现,以最小化实现此接口所需的工作量。
通过扩展此类来实现集合的过程与通过扩展 AbstractCollection 来实现集合的过程相同,只是此类的子类中的所有方法和构造函数必须遵守 Set
接口施加的额外约束(例如,add 方法不得允许将对象的多个实例添加到集合中)。
请注意,此类不会覆盖 AbstractCollection
类中的任何实现。它仅为 equals
和 hashCode
添加了实现。
此类是 Java 集合框架 的成员。
- 自 JDK 版本:
- 1.2
- 另请参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
将指定的对象与此集合进行比较以判断是否相等。int
hashCode()
返回此集合的哈希码值。boolean
removeAll
(Collection<?> c) 从此集合中移除包含在指定集合中的所有元素(可选操作)。Methods declared in class java.util.AbstractCollection
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, toArray, toArray, toString
Methods declared in class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods declared in interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Constructor Details
-
AbstractSet
protected AbstractSet()唯一构造函数。(通常由子类构造函数隐式调用。)
-
-
Method Details
-
equals
将指定的对象与此集合进行比较以判断是否相等。如果给定对象也是一个集合,并且两个集合具有相同的大小,并且给定集合的每个成员都包含在此集合中,则返回true
。这确保了equals
方法在Set
接口的不同实现之间正常工作。此实现首先检查指定的对象是否为此集合;如果是,则返回
true
。然后,它检查指定的对象是否是一个大小与此集合的大小相同的集合;如果不是,则返回 false。如果是,则返回containsAll((Collection) o)
。 -
hashCode
public int hashCode()返回此集合的哈希码值。集合的哈希码定义为集合中元素的哈希码之和,其中null
元素的哈希码定义为零。这确保了对于任意两个集合s1
和s2
,如果s1.equals(s2)
则s1.hashCode()==s2.hashCode()
,符合Object.hashCode()
的一般契约。此实现遍历集合,对集合中的每个元素调用
hashCode
方法,并将结果相加。 -
removeAll
从此集合中移除包含在指定集合中的所有元素(可选操作)。如果指定的集合也是一个集合,则此操作有效地修改此集合,使其值为两个集合的 非对称集合差。此实现通过在每个集合上调用
size
方法来确定此集合和指定集合中哪个更小。如果此集合的元素较少,则实现将遍历此集合,依次检查迭代器返回的每个元素是否包含在指定集合中。如果包含,则使用迭代器的remove
方法从此集合中移除。如果指定的集合的元素较少,则实现将遍历指定的集合,使用此集合的remove
方法从此集合中移除每个迭代器返回的元素。请注意,如果由
iterator
方法返回的迭代器未实现remove
方法,则此实现将抛出UnsupportedOperationException
。- 指定者:
-
removeAll
在接口Collection<E>
中 - 指定者:
-
removeAll
在接口Set<E>
中 - 覆盖:
-
removeAll
在类AbstractCollection<E>
中 - 参数:
-
c
- 包含要从此集合中移除的元素的集合 - 返回:
-
如果调用导致此集合发生更改,则返回
true
- 抛出:
-
UnsupportedOperationException
- 如果此集合不支持removeAll
操作 -
ClassCastException
- 如果此集合的元素的类与指定集合不兼容(可选) -
NullPointerException
- 如果此集合包含空元素且指定集合不允许空元素(可选),或者指定集合为 null - 另请参见:
-