HashMap(1.8)源码分析

124 阅读1分钟

目录

  1. 介绍
  2. 构造器
  3. 增删改查方法
  4. 常见面试题
介绍

HashMap是最常用的一种容器,底层是通过数组+链表来实现的,数组又称之为哈希桶,默认初始化时桶的数量是16个,每次扩容时都是以两倍机制扩容。桶中以链表的形式存放entry。 在Java8中,当桶中元素个数大于8个时会转化成红黑树,当个数小于6个时又会重新退化为链表;

HashMap是线程不安全的,当在多线程环境中做增删改车操作时建议用 Map m = Collections.synchronizedMap(new HashMap(...)); 这样来包装一下,或者用ConcurrentHashMap这样的并发容器。

整个HashMap的结构基本如下(图片来源于网络,侵删): e6db0936901ef3555c3c9d634869a445.jpeg

构造器