HashMap

元气小坏坏 提交于 2020-02-20 05:10:17

https://www.cnblogs.com/aobing/p/12014271.html

 HashMap是我们非常常用的数据结构,由数组和链表组合构成

大概如下,数组里面每个地方都存了Key-Value这样的实例,在Java7叫Entry在Java8中叫Node。

 

 

 因为他本身所有的位置都为null,在put插入的时候会根据key的hash去计算一个index值。

 

 

 

你提到了还有链表,为啥需要链表,链表又是怎么样子的呢?

 

 

我们都知道数组长度是有限的,在有限的长度里面我们使用哈希,哈希本身就存在概率性,就是”帅丙“和”丙帅“我们都去hash有一定的概率会一样,就像上面的情况我再次哈希”丙帅“极端情况也会hash到一个值上,那就形成了链表。

 

每一个节点都会保存自身的hash、key、value、以及下个节点,我看看Node的源码。

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!