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 集合框架 的成员。
- 自从:
- 1.2
- 参见:
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述boolean比较指定对象与此集合是否相等。inthashCode()返回此集合的哈希码值。booleanremoveAll(Collection<?> c) 从此集合中删除指定集合中包含的所有元素(可选操作)。在类 java.util.AbstractCollection 中声明的方法
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, toArray, toArray, toString在接口 java.util.Collection 中声明的方法
parallelStream, removeIf, stream, toArray
-
构造方法详细信息
-
AbstractSet
protected AbstractSet()唯一的构造方法。 (对于子类构造方法的调用,通常是隐式的。)
-
-
方法详情
-
equals
比较指定对象与此集合是否相等。如果给定对象也是一个集合,则返回true,这两个集合具有相同的大小,并且给定集合的每个成员都包含在该集合中。这可确保equals方法在Set接口的不同实现中正常工作。这个实现首先检查指定的对象是否是这个集合;如果是这样,它返回
true。然后,它检查指定的对象是否是一个集合,其大小与该集合的大小相同;如果不是,则返回 false。如果是这样,它返回containsAll((Collection) o)。 -
hashCode
public int hashCode()返回此集合的哈希码值。集合的哈希码定义为集合中元素的哈希码之和,其中null元素的哈希码定义为零。这确保s1.equals(s2)暗示s1.hashCode()==s2.hashCode()对于任何两个集合s1和s2,正如Object.hashCode()的总合同所要求的那样。此实现遍历集合,对集合中的每个元素调用
hashCode方法,并将结果相加。 -
removeAll
从此集合中删除指定集合中包含的所有元素(可选操作)。如果指定的集合也是一个集合,则此操作有效地修改了这个集合,使其值为不对称集差两组中的。此实现通过在每个集合上调用
size方法来确定哪个是该集合和指定集合中较小的一个。如果此集合的元素较少,则实现将迭代此集合,依次检查迭代器返回的每个元素以查看它是否包含在指定的集合中。如果它包含在内,则使用迭代器的remove方法将其从该集合中删除。如果指定的集合具有较少的元素,则实现将迭代指定的集合,使用此集合的remove方法从该集合中删除迭代器返回的每个元素。请注意,如果
iterator方法返回的迭代器未实现remove方法,则此实现将抛出UnsupportedOperationException。- 指定者:
removeAll在接口Collection<E>中- 指定者:
removeAll在接口Set<E>中- 重写:
removeAll在类AbstractCollection<E>中- 参数:
c- 包含要从此集合中删除的元素的集合- 返回:
true如果此集合因调用而更改- 抛出:
UnsupportedOperationException- 如果此集合不支持removeAll操作ClassCastException- 如果此集合的元素类与指定集合不兼容 (optional)NullPointerException- 如果此集合包含空元素并且指定的集合不允许空元素 (optional),或者如果指定的集合为空- 参见:
-