码迷,mamicode.com
首页 > 其他好文 > 详细

HashMap源码分析

时间:2015-05-05 13:58:56      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:

JDK中HashMap是一种最常用的基于哈希表的Map实现。
具有一下特性:
  • 允许key和value都为null。
  • 非线程安全。
  • 默认容量 length : 1 << 4 = 16
  • 默认最大容量 1 << 30
  • 默认因子 loadfactor: 0.75f
 
HashMap的实现思路:
  • 创建一个指定容量的数组用来存储链表对象
  • 对存入的内容的key通过hash算法取得对应都hash值
  • 将hash值与数组长度length-1取与,从而得到该key在数组中的下标
  • 如果该位置没有链表对象,在插入新的链表,返回null
  • 如果该位置已存在链表对象且不存在指定的key,在将内容插入到链表末尾,返回null
  • 如果该位置已存在链表对象且存在指定的key,在将内容替换,返回就内容
  • size++
  • 当size >= threshold且该key的位置不为null,则进行扩容,大小为 2 * length * loadfactor
 
 
 

技术分享

HashMap源码分析

标签:

原文地址:http://www.cnblogs.com/tinyking/p/4478755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!