- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractSet<E>
-
- 参数类型
-
E- 此集维护的元素类型
- 实现的所有接口
-
Iterable<E>,Collection<E>,Set<E>
- 已知直接子类:
-
ConcurrentSkipListSet,CopyOnWriteArraySet,EnumSet,HashSet,TreeSet
public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E>
此类提供Set接口的Set实现,以最大限度地减少实现此接口所需的工作量。通过扩展此类来实现集合的过程与通过扩展AbstractCollection实现集合的过程相同,除了此类的子类中的所有方法和构造函数必须遵守
Set接口强加的附加约束(例如, add方法不允许允许将多个对象实例添加到集合中。请注意,此类不会覆盖
AbstractCollection类中的任何实现。 它只是添加了equals和hashCode。此课程是Java Collections Framework的成员。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Collection,AbstractCollection,Set
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedAbstractSet()唯一的构造函数。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 booleanequals(Object o)将指定对象与此set进行相等性比较。inthashCode()返回此set的哈希码值。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
-
-
-
-
方法详细信息
-
equals
public boolean equals(Object o)
将指定对象与此set进行相等性比较。 如果给定对象也是一个集合,则返回true,这两个集合具有相同的大小,并且给定集合的每个成员都包含在此集合中。 这可确保equals方法在Set接口的不同实现中正常工作。此实现首先检查指定的对象是否为此set; 如果是这样,它返回
true。 然后,它检查指定的对象是否是一个大小与该集合的大小相同的集合; 如果不是,则返回false。 如果是,则返回containsAll((Collection) o)。- Specified by:
-
equals在界面Collection<E> - Specified by:
-
equals在界面Set<E> - 重写:
-
equals在课程Object - 参数
-
o- 要与此集进行相等性比较的对象 - 结果
-
true如果指定的对象等于此set - 另请参见:
-
Object.hashCode(),HashMap
-
hashCode
public int hashCode()
返回此set的哈希码值。 集合的哈希码被定义为集合中元素的哈希码的总和,其中null元素的哈希码被定义为零。 这确保s1.equals(s2)暗示s1.hashCode()==s2.hashCode()对于任何两组s1和s2,按照s2的一般合同的要求 。此实现迭代集合,在
hashCode中的每个元素上调用hashCode方法,并将结果相加。- Specified by:
-
hashCode,接口Collection<E> - Specified by:
-
hashCode在界面Set<E> - 重写:
-
hashCode在课程Object - 结果
- 此集的哈希码值
- 另请参见:
-
Object.equals(Object),Set.equals(Object)
-
removeAll
public boolean removeAll(Collection<?> c)
从此集合中删除指定集合中包含的所有元素(可选操作)。 如果指定的集合也是一个集合,则此操作会有效地修改此集合,以使其值为两个集合的不对称集合差异 。此实现通过在每个集合上调用
size方法来确定该集合和指定集合中较小的集合。 如果此set具有较少的元素,则实现迭代该集合,依次检查迭代器返回的每个元素以查看它是否包含在指定的集合中。 如果包含它,则使用迭代器的remove方法从该集合中删除它。 如果指定的集合具有较少的元素,则实现迭代指定的集合,使用此集合的remove方法从该集合中移除迭代器返回的每个元素。注意,此实现将抛出
UnsupportedOperationException如果返回的迭代器iterator方法没有实现remove方法。- Specified by:
-
removeAll在界面Collection<E> - Specified by:
-
removeAll在界面Set<E> - 重写:
-
removeAll在课程AbstractCollection<E> - 参数
-
c- 包含要从此集中删除的元素的集合 - 结果
-
true如果此设置因呼叫而更改 - 异常
-
UnsupportedOperationException- 如果此集合不支持removeAll操作 -
ClassCastException- 如果此集合的元素的类与指定的集合不兼容( optional ) -
NullPointerException- 如果此set包含null元素且指定的collection不允许null元素( optional ),或者指定的collection是null - 另请参见:
-
AbstractCollection.remove(Object),AbstractCollection.contains(Object)
-
-