记录下java中MAP的几种实现和应用场景
HASH MAP
- 最常用,初始化size=16
- 1.8之后改为:数组+链表+红黑树,加快复杂情况(HASH冲突)的查询效率
- 线程不安全
- 非有序,基础元素为NODE
- 允许K/V空值
常用方法
- put/get/remove
- containsKey/containsValue
- keySet/values
- clear/size/isEmpty
Linked Hash Map
- HASHMAP+LINKEDLIST
- 有序,基础元素为entry(node+before/after)
- 其他同hashmap
Concurrent Hash Map
- 线程安全
- CAS+synchronized
- volatile table
- 类似Hash Table
- K/V不可为空
Weak Hash Map
- 同hash map
- key为弱引用,但无使用时,会被GC回收
本文由 Ivan Dong 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jul 7, 2023 at 08:08 am