HashMap源码解析

来源:互联网 发布:淘宝网刷单怎么刷 编辑:程序博客网 时间:2024/05/16 15:35

转载处: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
具体代码如下:





0 0
原创粉丝点击