• hashMap原理


    hashMap是非同步的,即线程不安全。

    变为同步有Collection.synchronizeMap() 抑或CurentHashMap类

    hashMap为一个数组链表(数组中的每个元素都是一个链表的头结点)    hashcode()对建计算Hash值    equals()发生碰撞时,检测key值是否相同     存储方式为Entry类(即key value存储在一起) 

    hashMap的key用Integer,String。因为要计算hashcode值,所以只要final修饰的类都可以作为key。

    如果链表的阈值超过6,即将链表转为红黑树。

    put(key,value) 首先hash(key)获得数组下标,再调用equals()方法检查Key是否相同。如果key相同则,更新value值。如果不同,则在链表末尾插入Entry(即Entry->next = 新Entry)。

     负载因子为0.75。数组填满75%的时候。就会发生rehasing。即将数组扩大(具体细节,以后再加上来)

    rehasing时候的hasing竞争,没搞懂。

      

  • 相关阅读:
    5js
    4js
    3js
    2js
    1js
    7css
    6css
    5css
    Django高级项目实战-开发企业级问答网站,学Django就这了
    Java日志第27天 2020.8.1
  • 原文地址:https://www.cnblogs.com/GlazedCat/p/10549024.html
Copyright © 2020-2023  润新知