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都能一致对外服务

  • 相关阅读:
    getopt for windows
    开源代码学习之Tinyhttpd
    GCC 中的编译器堆栈保护技术
    读《程序员的思维修炼》有感
    main之前初始化流程
    平均速度
    显示图案
    圆的面积和周长
    C#(Winform) Http 发送数据
    Android BaseAdapter的使用
  • 原文地址:https://www.cnblogs.com/zby9527/p/13633010.html
Copyright © 2011-2022 走看看