HashMap源码解析
2015-04-25 10:39
260 查看
转载处:http://www.cnblogs.com/xwdreamer/archive/2012/06/03/2532832.html,具体详情请看这里。
HashMap是一个数组加链表的数据结构,源码中是这样定义的:
HashMap存储键值对源码:
Entry类的部分源码:
HashMap中的resize方法:当HashMap中的元素达到一定值时,这时很容易出先hash冲突,就要到链上一一比较查找,这时对HashMap查询不利。
因此,为了提高HashMap的查询效率,就要进行扩容。扩容操作,很消耗性能,因此,知道HashMap中元素个数并指定能提高HashMap的性能
,具体的代码如下:
HashMap不是线程安全的,因此,在迭代的过程中如果有其他线程在修改HashMap,将抛出异常。这是由modCount跟expectedModCount控制的,
其中modCount是transient类型的。每次迭代都要判断expectedModCount是否相等modCount
具体代码如下:
HashMap是一个数组加链表的数据结构,源码中是这样定义的:
HashMap存储键值对源码:
Entry类的部分源码:
HashMap中的resize方法:当HashMap中的元素达到一定值时,这时很容易出先hash冲突,就要到链上一一比较查找,这时对HashMap查询不利。
因此,为了提高HashMap的查询效率,就要进行扩容。扩容操作,很消耗性能,因此,知道HashMap中元素个数并指定能提高HashMap的性能
,具体的代码如下:
HashMap不是线程安全的,因此,在迭代的过程中如果有其他线程在修改HashMap,将抛出异常。这是由modCount跟expectedModCount控制的,
其中modCount是transient类型的。每次迭代都要判断expectedModCount是否相等modCount
具体代码如下:
相关文章推荐
- Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例
- Android源码解析 -- HashMap
- HashMap源码解析
- hashMap源码解析
- 给jdk写注释系列之jdk1.6容器(4)-HashMap源码解析
- 一步一步解析java集合框架HashMap源码(1)
- 【集合源码】HashMap源码解析(基于JDK 1.8)
- JDK8 HashMap源码解析
- HashMap源码解析
- HashMap源码解析(注释版)
- OpenJDK1.8.0 源码解析————HashMap的实现(一)
- JDK8 HashMap 源码解析
- HashMap源码解析(基于JDK1.7)
- [源码解析]HashMap和HashTable的区别(源码分析解读)
- Java集合框架之三:HashMap源码解析
- HashMap源码解析《三》get,remove方法
- HashMap源码解析
- java WeakHashMap详细介绍(源码解析)和使用示例
- hashmap源码解析
- 第五章 HashMap源码解析