HashSet是基于HashMap来实现的,实现了Set接口,同时还实现了序列化和可克隆化。而集合(Set)是不允许重复值的。
所以HashSet是一个没有重复元素的集合,但不保证集合的迭代顺序,所以随着时间元素的顺序可能会改变。
由于HashSet是基于HashMap来实现的,所以允许空值,不是线程安全的。
想了解这两者的区别,可以去我的Java专栏看。
HashSet是基于HashMap实现的,区别就在于在HashMap中输入一个键值对,而在HashSet中只输入一个值。
Java代码:
而HashSet类的add的实现是这样子的,很明显可以看到是调用了HashMap里的put()方法。而里面的present则是常量,就是没用的。
创建HashSet是首先需要创建一个HashSet类的对象,下面是几种构造函数。
该构造函数用于构建一个空的HashSet对象,其中默认初始容量为16,默认加载因子为0.75。如果我们希望创建一个名为 hs 的空 HashSet,则可以将其创建为:
示例:
该构造函数用于构建一个空的HashSet对象,在对象创建时指定initialCapacity。这里,默认的 loadFactor 保持为 0.75。
initialCapacity就是初始容量,loadFactor是负载因子。示例:如果初始容量为 16,负载因子为 0.75,则当表中有 12 个元素时,桶的数量将自动增加。
示例:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/12908.html