HashMap的实现原理
2013-09-25 16:43
253 查看
http://zhangshixi.iteye.com/blog/672697
在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。
从上图中可以看出,HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。
从上面的源代码中可以看出:当我们往HashMap中put元素的时候,先根据key的hashCode重新计算hash值,根据hash值得到这个元素在数组中的位置(即下标),如果数组该位置上已经存放有其他元素了,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放在链尾。如果数组该位置上没有元素,就直接将该元素放到此数组中的该位置上。
在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。
从上图中可以看出,HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。
从上面的源代码中可以看出:当我们往HashMap中put元素的时候,先根据key的hashCode重新计算hash值,根据hash值得到这个元素在数组中的位置(即下标),如果数组该位置上已经存放有其他元素了,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放在链尾。如果数组该位置上没有元素,就直接将该元素放到此数组中的该位置上。
相关文章推荐
- HashMap底层实现原理
- 从代码层读懂Java HashMap的实现原理
- hash算法 (hashmap 实现原理)
- HashMap实现原理分析
- Java中HashMap底层实现原理(JDK1.8)源码分析
- HashMap的实现原理
- HashMap实现原理分析
- hashmap的实现原理
- ArrayList LinkedList与HashMap 实现原理
- 深入理解Java中的HashMap的实现原理
- 无锁HashMap的原理与实现
- HashMap实现原理分析
- 深入Java集合学习系列:HashMap的实现原理
- Jdk1.8中的HashMap实现原理
- HashMap实现原理分析
- HashMap实现原理分析
- HashMap实现原理
- HashMap实现原理分析
- 深入Java集合学习系列:HashMap的实现原理
- HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别