HashSet学习笔记

2018-11-09  本文已影响0人  _拾年丶

1.实现原理:基于哈希表实现(HashMap)实现

2.不允许重复,可以有一个null值

3.不保证顺序恒久不变

4.添加元素时把元素作为HashMap的key来存储,HashMap的value使用一个固定的object对象(present)

5.排除重复元素是通过equals来检查对象是否相同

6.判断两个对象是否相同,先判断两个对象的hashCode是否相同 (如果两个对象的hashCode相同,不一定是同一个对象,如果不同,那一定不是同一个对象),如果不同,则判断两个对象不是同一个对象,如果相同,还要进行equals判断,equals相同则是同一个对象,不同则不是同一个对象

7.自定义对象要认为属性值都相同时为同一个对象,有这种需求时,那么我们要重写对象所在类的hashCode和equals方法。


小结

(1) 哈希表的存储结构:数组+链表,数组里的每个元素以链表的形式存储
(2)如何把对象存储到哈希表中,先计算对象的hashCode值,再对数组的长度求余数,来决定对象要存储在数组中的哪个位置
(3)解决hashSet中的重复值使用的方式是,参考第六点

上一篇 下一篇

猜你喜欢

热点阅读