zoukankan      html  css  js  c++  java
  • Map小记

    Map

    • key-value存储容器

    HashMap

    • Hash表实现的Map
    • 允许key和value为null

    LinkedHashMap

    • Hash表实现,同时保存了插入或者访问顺序

    SortedMap

    • 有序Map,key会排序
    • 可导航的map,由于是有序的,因此可以实现获取某个key排序前的所有key等类似操作

    TreeMap

    • 使用红黑树实现的Map

    HashTable

    • 线程安全的Hash表实现Map,使用this锁,内部优化很少

    ConcurrentMap

    • 并发安全的Map

    ConcurrentHashMap

    • 并发安全的hash表实现的Map
    • 使用cas和hash槽synchronized保证线程安全

    ConcurrentLinkedHashMap❌

    • 不存在,因为保持全局顺序必须map级别的锁

    ConcurrentNavigableMap

    • 并发可导航map,有序map

    ConcurrentTreeMap❌

    • 不存在,TreeMap是红黑树实现的,只有一个根节点,要实现并发必须加map级别的锁

    ConcurrentSkipListMap

    • 并发跳表实现Map,有序,通过cas实现无锁

    不管key和value能不能为null,也懒得去记,最好都把null包装成null对象,这样所有的map都能一致对外服务

  • 相关阅读:
    JDK、J2EE、J2SE、J2ME的区别
    消息队列
    Unity3D 导入aar注意事项
    汇编小结
    构造函数语意学--笔记
    androidStudio 改包名
    新手用车
    北京临牌办理与续办
    h5+
    apache.http.MalformedChunkCodingException: Chunked stream ended unexpectedly
  • 原文地址:https://www.cnblogs.com/zby9527/p/13633010.html
Copyright © 2011-2022 走看看