• Java HashMap、HashTable与ConCurrentHashMap


    一、Java中数据存储方式最底层的两种结构

      1、数组:存储空间连续,寻址迅速,增删较慢。(代表:ArrayList)

      2、链表:存储空间不连续,寻址慢,增删较快。(代表:LinkedList)

    二、哈希表:较快(常量级)的查询速度,及相对较快的增删速度,所以很适合在海量数据的环境中使用。

      1、哈希表是由数组+链表组成的(链表的数组,数组中存的是链表的头结点)

          

    三、HashMap与HashTable的区别(相同存储机制)

      1、HashMap是非线程安全的,HashTable是线程安全的。  

      2、HashMap的键和值都允许有null值存在,而HashTable则不行。

      3、因为线程安全的问题,HashMap效率比HashTable的要高。

    四、ConCurrentHashMap是HashMap的线程安全的实现,与传统HashTable相比,性能更好。  

      1、HashTable使用synchronized关键字锁住对象整体

      2、ConCurrentHashMap基于lock操作的,这样的目的是保证同步的时候,锁住的不是整个对象。

  • 相关阅读:
    hdu 1253
    poj 2531 Network Saboteur
    rwkj 1501 数据结构:图的DFS遍历
    rwkj 1306 素数========拓展
    nyist 91 阶乘之和
    nyist 65 另一种阶乘问题
    nyist 31 5个数求最值
    nyist 22 素数求和
    向量 vector
    字符串 统计 ,删除,连接,变换
  • 原文地址:https://www.cnblogs.com/zxguan/p/7825914.html
Copyright © 2020-2023  润新知