Java集合(3):小白也能看懂的HashMap图解、底层原理与Hash算法 | 您所在的位置:网站首页 › 链表集合 › Java集合(3):小白也能看懂的HashMap图解、底层原理与Hash算法 |
前面分析了Java集合中ArrayList和LinkedList的源码,这次说一下另一个常用的集合:HashMap。 一 、HashMap的特点(1)属于Map下的集合,用KV键值对存储元素,元素是无序的,key不允许重复,value允许重复,允许存储null。 (2)底层数据结构是哈希表,实现是链表+数组,JDK 8 后又加了红黑树。 (3)多线程环境下不安全,解决方法: 使用Hashtable;调用Collections类的synchronizedMap方法;使用juc包下的ConcurrentHashMap类代替(此方法效率最高)。 二、初识底层结构特点中提到,HashMap底层结构为数组+链表+红黑树,先看一下大体的结构图: HashMap中定义了六个常量,用来控制它的底层结构。 (1)static final int DEFAULT_INITIAL_CAPACITY = 1 |
CopyRight 2018-2019 实验室设备网 版权所有 |