HashMap底层详解-001-数据结构putget
Posted JavaWeb架构师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HashMap底层详解-001-数据结构putget相关的知识,希望对你有一定的参考价值。
今天小粉粉去某公司参加Java开发工程师的面试了。但是不太顺利,然后她遇见了小灰灰……
HashMap的数据结构
HashMap的数据结构是 数组+链表 的形式组成的。
数组(这个table就是咱们看见的数组部分。)
链表(在数组元素的内部)
put、get
put:
先根据put进来的元素的key值对应的hash值得到这个元素应该存放在table中的位置(index)
把这个元素放入到index位置上。如果这个index上已经存放有其他元素了,那在同一个位子上的元素将以链表的形式存放,新加入的放在链头(头插法)
get:
先根据get元素的key值对应的hash值得到这个元素应该存放在table中的位置(index)
再在这个index的元素的链表中去equals(key),如果相等的话,那就是要get的值(顺便一提:实现者认为后面插入的被查找的概率更大,所以使用了头插法)
2.简书:http://www.jianshu.com/u/53b3f4658edc
3.CSDN:http://blog.csdn.net/qq_33605778?viewmode=contents
JavaWeb架构师
点击阅读原文,支持作者!
以上是关于HashMap底层详解-001-数据结构putget的主要内容,如果未能解决你的问题,请参考以下文章