zoukankan      html  css  js  c++  java
  • HashMap的底层实现原理

    1.线性链表->数组+链表 --------HashMap是数组结构、链表结构与Hash算法的结合。

    如图所示:

    Hash算法中  Object.hashcode()   计算出Object的哈希码值(int)

      同一个对象 多次调用 hashcode()得到的结构都是相同的

      两个对象调用equals()方法结果为true 即比较结果相同,这两个对象再调用hashcode()也一定相同。如果这个两个对象调用equals()方法结果不相同的话,这两个对象再调用hashcode()也不一定不相同。

    HashMap 和HashTable的区别:

      HashMap允许空值和空键;

      HashTable不允许空value。源码如图:

    而且是线程安全的,synchronized,下面这个是另外一个ConcurrentHashMap,hashtable是锁整张表,而这个是锁某个段。HashMap是线性非安全的,效率较线程安全的来时相对高。

    ConcurrentHashMap  不允许空键值对

           // 2.通过Hash算法计算要插入的值。

  • 相关阅读:
    LDA模型了解及相关知识
    GAN
    tensorflow学习6
    GAN的文献综述
    python相关工具
    tensorflow学习5----变量管理
    tensorflow学习5----GAN模型初探
    8月14日至8月20日技术积累
    8月7日至8月13日技术积累
    8月1日到8月6日技术要点
  • 原文地址:https://www.cnblogs.com/auldlangsynezh/p/9022508.html
Copyright © 2011-2022 走看看