您的位置:首页 > 其它

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
具体代码如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: