首页 理论教育 Java程序设计-HashSet

Java程序设计-HashSet

时间:2023-11-01 理论教育 版权反馈
【摘要】:图9-4HashSet类的无参数构造方法public HashSet:构造一个空的HashSet集合,其底层创建的Hash Map实例具有指定的初始容量和默认的加载因子。图9-5HashSet类的add方法向HashSet中增加一个元素,实际是向map集合中增加一个键值对,其中,键对象就是这个元素e,而值是一个Object类型的常量。程序第12行显示,重复元素没有增加进set,HashSet集合的元素是不重复的。程序第22~24行通过增强for循环遍历HashSet集合。

Java程序设计-HashSet

HashSet的底层其实是由Hash Map实现的,在学习完Hash Map后才能真正理解HashSet。

1.HashSet的构造方法

(1)public HashSet():构造一个空的HashSet集合,其底层创建的Hash Map实例的默认初始容量是16,加载因子是0.75。源代码如图9-4所示。

图9-4 HashSet类的无参数构造方法

(2)public HashSet(int initialCapacity):构造一个空的HashSet集合,其底层创建的Hash Map实例具有指定的初始容量和默认的加载因子(0.75)。

(3)public HashSet(int initialCapacity,float loadFactor):构造一个空的HashSet集合,其底层创建的Hash Map实例具有指定的初始容量和指定的加载因子。

2.向HashSet添加数据

观察HashSet的public boolean add(E e)方法,源代码如图9-5所示。

图9-5 HashSet类的add方法

向HashSet中增加一个元素,实际是向map集合中增加一个键值对,其中,键对象就是这个元素e,而值是一个Object类型的常量。由于在Hash Map中,键对象是不能重复的,因此,这些键对象作为HashSet集合的元素自然也是不会重复的。(www.xing528.com)

3.HashSet的遍历

Set集合中的元素是无序的,Set集合中的元素不能通过索引操作,因此,Set集合的遍历只能通过Iterator迭代器或者增强for循环来实现。

【例9-3】

以HashSet集合为例演示Set集合的遍历。

在项目chapter9的src目录下新建包cn.linaw.chapter9.demo02,在包里新建一个测试类HashSet Traversal Test,源代码如图9-6所示。

图9-6 HashSet的遍历

(1)程序第7行创建了一个空的HashSet集合。

(2)程序第8~11行通过调用HashSet的add方法,向set里添加元素。程序第12行显示,重复元素没有增加进set,HashSet集合的元素是不重复的。

(3)程序第14行通过set.iterator()获取了该集合的迭代器,然后利用迭代器进行遍历。在迭代器遍历中,可以同时删除指定的集合元素。

(4)程序第22~24行通过增强for循环遍历HashSet集合。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈