你的位置:首页 > 软件开发 > Java > hashmap的底层实现

hashmap的底层实现

发布时间:2016-11-08 03:00:15
HashMap的底层实现都是数组+链表结构实现的,添加、删除、获取元素都是先计算hash值,根据hash值和table.length计算出index也就是table的数组的下标,然后进行相应的操作。 不过HashMap和HashTable计算hash的方法不同: HashMap是 ...

HashMap的底层实现都是数组+链表结构实现的,添加、删除、获取元素都是先计算hash值,根据hash值和table.length计算出index也就是table的数组的下标,然后进行相应的操作。

不过HashMap和HashTable计算hash的方法不同:

HashMap是直接用key的hashcode对table数组长度取模;而HashMap则是对key的hashcode进行两次hash,以获得更好的散列值,然后再对table数组的长度取模。

 

具体方法的实现:

HashMap默认初始化时会创建一个容量为16的Entry数组,默认加载因子为0.75,同时设置临界值16*0.75;

 public HashMap() {    this.loadFactor = DEFAULT_LOAD_FACTOR;    threshold = (int)(DEFAULT_INITIAL_CAPACITY * DEFAULT_LOAD_FACTOR);    table = new Entry[DEFAULT_INITIAL_CAPACITY];    init();  }
对于put方法:

HashMap会对null值key进行特殊处理,总是放到table[0]位置

原标题:hashmap的底层实现

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录