• hashmap和hashtable


    1,hashtree的底层是红黑树,实现是键值对的排序,key必须实现Comparable接口(比如String就实现了)

    2,hashmap用要利用hashcode和equal两个函数,Object已经实现,可以重写(比如string),先用hashcode找到哈希表的哈希桶,如果hash值相同,再用equal函数比较

    3,hashmap可以运行键有一个null

    4,hashmap的node容量为16,每一个hash桶容量为8,满了8就由链表优化成树,时间复杂度由,log(n)-》log(1),自动扩容因子为0.75

    5,hashmap在并发下同时插入一个hashcode相同的值,或者扩容时候,后面的操作会覆盖前面的操作

    6,hashtable在put,get方法加了锁了

    7,

    ConcurrentHashMap

    ConcurrentHashMap引入segment的概念。Segment在实现上继承了ReentrantLock。
    Java8中摒弃了segment了,使用CAS的算法。

    SynchronizedMap

    Collections.getSynchronizedMap()返回一个SynchronizedMap()对象,使用synchronized关键字来保证对Map的操作是多线程安全的。

    效率

    ConcurrentHashMap > (SynchronizedMap or HashTable)

    入门:https://www.cnblogs.com/lchzls/p/6714689.html

    全面:https://yemengying.com/2016/05/07/threadsafe-hashmap/

  • 相关阅读:
    38) 收集centos所有版本镜像下载地址
    37) 查看linux 操作系统为多少位
    php面向对象高级应用一
    php form表单的验证+提交到数据库
    php获取form表单数据
    php form表单的提交
    php form表单概念
    php日期和时间的应用
    php日期和时间函数
    php字符串函数操作实例(2)
  • 原文地址:https://www.cnblogs.com/vhyc/p/9222393.html
Copyright © 2020-2023  润新知