Ch01-Java Map 之 HashMap

Ch01-Java Map 之 HashMap

February 10, 2017
Java | Map
java

1. 底层数据结构 #

Java 1.7 中使用数组+链表这样的数据结构,自 Java 1.8 开始使用数组+链表+红黑树这样的数据结构。

hashmap

2. 数组扩容 #

resize() 方法用于初始化数组或数组扩容,每次扩容后,容量为原来的 2 倍,并进行数据迁移。

3.线程不安全 #

HashMap 的线程不安全主要体现在下面两个方面:

  1. 在 Java 1.7 中,当并发执行扩容操作时会造成环形链和数据丢失的情况。
  2. 在 Java 1.8 中,在并发执行 put 操作时会发生数据覆盖的情况。

4. 参考文献 #