美文网首页
HashSet学习笔记

HashSet学习笔记

作者: _拾年丶 | 来源:发表于2018-11-09 16:53 被阅读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中的重复值使用的方式是,参考第六点

    • 如果要排序,选择treeSet
    • 如果不要排序,也不用保证顺序,选择HashSet
    • 如果不要排序,但是要保证顺序,选择LinkedHashSet

    相关文章

      网友评论

          本文标题:HashSet学习笔记

          本文链接:https://www.haomeiwen.com/subject/ugpoxqtx.html