美文网首页
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学习笔记

    1.实现原理:基于哈希表实现(HashMap)实现 2.不允许重复,可以有一个null值 3.不保证顺序恒久不变 ...

  • HashSet-->HashMap学习笔记

    直接从add方法开始,引入眼帘的为以下代码 看到这里的时候有点疑惑,map是什么时候做的初始化,PRESENT又是...

  • JAVA8 HashSet学习笔记

    HashSet Set集合的最主要特性就是没有重复元素,HashSet是Set的一个字类,其内部基于HashMap...

  • java8中hashset源码分析

    分析大纲 hashset实现原理 hashset代码分析 1. hashset实现原理 hashset存储无序,不...

  • HashSet的用法

    java集合——HashSet的用法 一、HashSet的构造 二、HashSet添加元素 三、遍历HashSet...

  • HashSet, LinkedHashSet源码

    目录 HashSet LinkedHashSet HashSet 对于HashSet而言,它是基于HashMap实...

  • Set解析

    概览 上图为HashSet,LinkedSet,TreeSet对比 HashSet 可见HashSet其实就是实现...

  • set——hashset和treeset

    下面是学习的时候写的一些代码: 1.hashSet的基本使用 2.hashset的特性 3.treeSet的基本使...

  • Java集合之HashSet源码分析

    阅读目录 一、HashSet简介 二、HashSet源码分析 三、HashSet的应用示例代码

  • HashMap 和 HashSet 区别

    看过 HashSet 源码的人就应该知道:HashSet 底层就是基于 HashMap 实现的。(HashSet ...

网友评论

      本文标题:HashSet学习笔记

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