一
<span style="font-size:14px;"><span style="font-size:14px;">public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable
</span></span>
HashSet继承AbstractSet类,实现Set、Cloneable、Serializable接口。
AbstractSet提供了 Set 接口的骨干实现,从而最大限度地减少了实现此接口所需的工作。
Set接口是一种不包括重复元素的Collection,Set维持自己的内部排序,所以随机访问没有任何意义。
二
<span style="font-size:14px;">public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable {
private transient HashMap<E,Object> map;
}</span>
HashSet底层使用HashMap保存所有元素,所以HashSet是基于HashMap实现的。
三
Hashset中不允许出现重复对象,元素的位置也是不确定的,那么在hashset中怎样判定元素是否重复的呢?
Java集合中判断两个对象是否相等的规则
第一步:调用hashCode(),判断两个对象的哈希值是否相等;
第二步:调用equals(),判断是否返回true 。
本文深入探讨了HashSet的实现机制,揭示了其如何通过继承AbstractSet并实现Set接口来提供高效的元素管理。文章还详细介绍了HashSet利用HashMap来存储元素,并解释了通过hashCode与equals方法判断元素重复性的过程。
985

被折叠的 条评论
为什么被折叠?



