树叶云鸿蒙OS教程-HashSet-鸿蒙OS (树叶云朵图片画)

教程大全 2025-07-19 03:32:19 浏览
public class HashSetextends AbstractSetimplements Set, Cloneable, Serializable

该类实现了由哈希表(实际上是 HashMap 实例)支持的 Set 接口。 它不保证集合的迭代顺序; 特别是,它不保证订单会随着时间的推移保持不变。 此类允许空元素。

此类为基本操作(添加、删除、包含和大小)提供恒定的时间性能,假设哈希函数将元素正确地分散在桶中。 迭代这个集合需要的时间与 HashSet 实例的大小(元素的数量)加上支持 HashMap 实例的“容量”(桶的数量)的总和成正比。 因此,如果迭代性能很重要,则不要将初始容量设置得太高(或负载因子太低),这一点非常重要。

请注意,此实现不同步。 如果多个线程同时访问一个哈希集,并且至少有一个线程修改了该集,则必须在外部进行同步。 这通常是通过在一些自然封装集合的对象上同步来完成的。 如果不存在这样的对象,则应使用 Collections#synchronizedSet 方法“包装”该集合。 这最好在创建时完成,以防止对集合的意外不同步访问:

Set s = Collections.synchronizedSet(new HashSet(...));

此类的迭代器方法返回的迭代器是快速失败的:如果在创建迭代器后的任何时间修改了集合,除了通过迭代器自己的 remove 方法之外的任何方式,迭代器都会抛出 ConcurrentModificationException。 因此,面对并发修改,迭代器快速而干净地失败,而不是在未来不确定的时间冒任意的、非确定性的行为。

请注意,不能保证迭代器的快速失败行为,因为一般来说,在存在不同步的并发修改的情况下,不可能做出任何硬保证。 快速失败的迭代器会尽最大努力抛出 ConcurrentModificationException。 因此,编写一个依赖于这个异常的正确性的程序是错误的:迭代器的快速失败行为应该只用于检测错误。

此类是 Java 集合框架的成员。

构造函数摘要

构造函数 描述
构造一个新的空集;支持的HashMap实例具有默认的初始容量(16)和加载因子(0.75)。
HashSet(intinitialCapacity) 构造一个新的空集;支持HashMap实例具有指定的初始容量和默认加载因子(0.75)。
HashSet(intinitialCapacity,floatloadFactor) 构造一个新的空集;后备HashMap实例具有指定的初始容量和指定的负载因子。
HashSet(Collectionc) 构造一个包含指定集合中元素的新集合。

方法总结

鸿蒙OS
修饰符和类型 方法 描述
如果指定的元素尚不存在,则将其添加到此集合中。
从此集合中移除所有元素。
返回此HashSet实例的浅表副本:元素本身未被克隆。
contains(Objecto) 如果此集合包含指定的元素,则返回true
如果此集合不包含任何元素,则返回true。
iterator() 返回此集合中元素的迭代器。
remove(Objecto) 如果存在,则从此集合中删除指定的元素。
返回此集合中的元素数(其基数)。
SpliteratorE spliterator() 在此集合中的元素上创建一个后期绑定和快速失败的拆分器。
从类 java.util.AbstractCollection 继承的方法
addAll,containsAll,retainAll,toArray,toArray,toString
从类 java.util.AbstractSet 继承的方法
equals,hashCode,removeAll
从接口 java.util.Collection 继承的方法
parallelStream,removeIf,stream
从接口 java.lang.Iterable 继承的方法
从类 java.lang.Object 继承的方法
finalize,getClass,notify,notifyAll,wait,wait,wait
从接口 java.util.Set 继承的方法
addAll,containsAll,equals,hashCode,removeAll,retainAll,toArray,toArray

构造函数详细信息

public HashSet()

构造一个新的空集; 支持的 HashMap 实例具有默认的初始容量 (16) 和加载因子 (0.75)。

public HashSet(Collection c)

构造一个包含指定集合中元素的新集合。 HashMap 是使用默认加载因子 (0.75) 和足以包含指定集合中的元素的初始容量创建的。

参数:

参数名称 参数描述
将其元素放入此集合的集合
Throw名称 Throw描述
NullPointerException ifthespecifiedcollectionisnull

public HashSet(int initialCapacity, float loadFactor)

构造一个新的空集; 后备 HashMap 实例具有指定的初始容量和指定的负载因子。

参数:

参数名称 参数描述
initialCapacity hashmap的初始容量
loadFactor 哈希映射的负载因子
Throw名称 Throw描述
IllegalArgumentException 如果初始容量小于零,或者负载因子为非正数

public HashSet(int initialCapacity)

构造一个新的空集; 支持 HashMap 实例具有指定的初始容量和默认加载因子 (0.75)。

参数:

参数名称 参数描述
initialCapacity 哈希表的初始容量
Throw名称 Throw描述
IllegalArgumentException 如果初始容量小于零

方法详情

public IteratorE iterator()

返回此集合中元素的迭代器。 返回的元素没有特定的顺序。

指定者:

接口 CollectionE 中的迭代器

指定者:

接口 IterableE 中的迭代器

指定者:

接口 SetE 中的迭代器

指定者:

AbstractCollectionE 类中的迭代器

返回:

此集合中元素的迭代器

public int size()

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

指定者:

接口 CollectionE 中的大小

指定者:

接口 SetE 中的大小

指定者:

AbstractCollectionE 类中的大小

返回:

该集合中的元素数量(其基数)

public boolean isEmpty()

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

指定者:

接口 CollectionE 中的 isEmpty

指定者:

接口 SetE 中的 isEmpty

覆盖:

类 AbstractCollectionE 中的 isEmpty

返回:

如果此集合不包含任何元素,则为 true

public boolean contains(Object o)

如果此集合包含指定的元素,则返回 true。 更正式地说,当且仅当此集合包含满足 (o==null ? e==null : o.equals(e)) 的元素 e 时才返回 true。

指定者:

包含在接口 CollectionE 中

指定者:

包含在接口 SetE 中

覆盖:

包含在类 AbstractCollectionE 中

参数:

参数名称 参数描述
要测试其在该集合中的存在的元素

返回:

如果此集合包含指定元素,则为 true

public boolean add(E e)

如果指定的元素尚不存在,则将其添加到此集合中。 更正式地说,如果此集合不包含元素 e2,则将指定的元素 e 添加到此集合中,使得 (e==null ? e2==null : e.equals(e2))。 如果该集合已包含该元素,则调用将保持该集合不变并返回 false。

指定者:

添加接口CollectionE

指定者:

添加接口SetE

覆盖:

添加类 AbstractCollectionE

参数:

参数名称 参数描述
要添加到此集合的元素

返回:

如果此集合尚未包含指定元素,则为 true

public boolean remove(Object o)

如果存在,则从此集合中删除指定的元素。 更正式地说,如果这个集合包含这样一个元素,则删除一个元素 e 使得 (o==null ? e==null : o.equals(e))。 如果此 set 包含该元素(或等效地,如果此 set 由于调用而更改),则返回 true。 (一旦调用返回,该集合将不包含该元素。)

指定者:

在接口 CollectionE 中删除

指定者:

在接口 SetE 中删除

覆盖:

在类 AbstractCollectionE 中删除

参数:

参数名称 参数描述
要从此集合中删除的对象(如果存在)

返回:

如果集合包含指定元素,则为 true

public void clear()

从此集合中移除所有元素。 此调用返回后,该集合将为空。

指定者:

界面 CollectionE 中清除

指定者:

在接口 SetE 中清除

覆盖:

在类 AbstractCollectionE 中清除

public Object clone()

返回此 HashSet 实例的浅表副本:元素本身未被克隆。

覆盖:

在类 Object 中克隆

返回:

这个集合的浅拷贝

spliterator

public SpliteratorE spliterator()

在此集合中的元素上创建一个后期绑定和快速失败的拆分器。

Spliterator 报告 Spliterator#SIZED 和 Spliterator#DISTINCT。 覆盖实现应记录附加特征值的报告。

指定者:

接口 CollectionE 中的分离器

指定者:

接口 IterableE 中的分离器

指定者:

接口 SetE 中的分离器

返回:

此集合中元素的拆分器

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐