HashMap
是一个极常用的 key-value 的集合,当然它是线程不安全的。
ConcurrentHashMap
是一个线程安全的集合。
HashMap
和 ConcurrentHashMap
具有相似的数据结构和底层实现。
本文讲下这两个 Map 的实现原理,不深入讲源码。源码分析,之后会单独写。
.
一、示例说明
不管是 HashMap
还是 ConcurrentHashMap
,底层都有三大块
- 哈希函数
- 数组
- 链表+红黑树
举个例子,现要把班级的数学成绩,存储到 HashMap 中,(key-姓名, value-成绩)
public static void main(String[] args) throws Exception {
Map<String, Integer> map = new HashMap<>(16);
map.put