HashSet数据存储方式详解
作者:互联网
***HashSet数据存储方式
下图为一个HashSet数组的结构和三个元素,演示存储的过程
首先存入字符串“abc”;通过hashCode方法发现数组里没有96354这个哈希值,将这个哈希值存入数组,然后将元素"abc"以链表的方式连接在对应的哈希值数组下
然后重复操作同样存入元素"重地";
最后,存入元素“通话”,在调用方法hashCode返回哈希值的时候,发现数组中已经存在117935这个哈希值,要调用equals方法比较元素“重地”和“通话”,若返回false,存入“通话”,若返回ture,放弃存储。很明显,“通话”.equals("重地")返回false,因为哈希值一样所以“通话”以链表的形式挂在“重地”下面,形成链表
HashSet补充:为什么重写hashCode方法中用31?
标签:存储,数组,HashSet,存入,链表,通话,详解,哈希 来源: https://www.cnblogs.com/xypersonal/p/16103971.html