[Java]HashMap的底层实现
2016-11-30 22:56
134 查看
HashMap底层的结构,就是一个链表的数组。
其中每一个链表称为一个“桶(Bucket)”。
HashMap可以很快地定位一个元素,因为它是按照键值对中Key元素的hashCode对桶的总数取余来决定存储到哪个桶去的,所以查找数据的时候同样的通过Key的元素的hashCode进行计算后,就可以知道元素的存储位置,然后通过数组可随机存取的特性,迅速地取到目标桶。如果桶内有不止一个的键值对,那么就要通过比较key是否相等来确定目标键值对了,但是由于范围已经缩小到一个桶内了,比较操作一般不用执行很多次。
HashMap创建的时候可以指定数组的大小(即桶的总数),以及加载因子(loadFactor)。
加载因子决定了已使用的桶占到总数的多少百分比的时候,执行再散列操作进行扩容。默认值为0.75。
附一篇刚刚看到的总结比较详细的文章:HashMap的工作原理
其中每一个链表称为一个“桶(Bucket)”。
HashMap可以很快地定位一个元素,因为它是按照键值对中Key元素的hashCode对桶的总数取余来决定存储到哪个桶去的,所以查找数据的时候同样的通过Key的元素的hashCode进行计算后,就可以知道元素的存储位置,然后通过数组可随机存取的特性,迅速地取到目标桶。如果桶内有不止一个的键值对,那么就要通过比较key是否相等来确定目标键值对了,但是由于范围已经缩小到一个桶内了,比较操作一般不用执行很多次。
HashMap创建的时候可以指定数组的大小(即桶的总数),以及加载因子(loadFactor)。
加载因子决定了已使用的桶占到总数的多少百分比的时候,执行再散列操作进行扩容。默认值为0.75。
附一篇刚刚看到的总结比较详细的文章:HashMap的工作原理
相关文章推荐
- Java源码---HashMap的底层实现
- Java集合系列:-----------08HashMap的底层实现
- Java基础面试题2-HashMap的源码,实现原理,底层结构
- Java的HashMap底层实现详解
- Java中HashMap底层实现原理(JDK1.8)源码分析
- Java中HashMap底层实现原理(JDK1.8)源码分析
- Java中HashMap底层实现原理(JDK1.8)源码分析
- Java中HashMap底层实现
- JDK学习---深入理解java中的HashMap、HashSet底层实现
- (转载)Java中HashMap底层实现原理(JDK1.8)源码分析
- 再学Java 之 HashMap的底层实现
- Java中HashMap底层实现原理(JDK1.8)源码分析
- Java中HashMap底层实现原理(JDK1.8)源码分析
- Java之HashMap底层实现原理/HashMap、HashTable、HashSet
- Java中HashMap底层实现原理(JDK1.8)源码分析
- Java集合 --- HashMap底层实现和原理
- Java集合,HashMap底层实现和原理(1.7数组+链表与1.8+的数组+链表+红黑树)
- Java面试绕不开的问题: Java中HashMap底层实现原理(JDK1.8)源码分析
- java面试之HashMap的实现原理和底层数据结构
- JAVA HashMap底层实现原理