Java HashMap详解
Java HashMap详解 什么是Map? 什么是HashMap? HashMap初始化 HashMap原理 HashMap扩容 HashMap面试题 什么是Map? 要理解hashMap,首先你要知道什么是map,map是用于存储键值对(<key,value>)的集合类。在java中map是一个接口,是和collection接口同一等级的集合根接口。 map的特点:1、key是无序、唯一的; 2、value是无序不唯一的。 什么是HashMap? HashMap是用哈希表(数组+单链表)+红黑树实现的map类(JDK1.8之前是数组+单链表,JDK1.8加入了红黑树)。 红黑树实际上就是一个二叉树,只是每个节点都被标记为黑色或者红色。 HashMap初始化 Map map = new HashMap(); HashMap默认初始大小为16。大小只能是2的n次方,若强行给初始大小为非2的n次方,HashMap会自动调整为2的n次方。 HashMap的最大容量为2的30次方,传入容量过大将被这个值替换: static final int MAXIMUM_CAPACITY = 1 << 30("<<"为左移运算符,1表示十进制中的“1”,30表示十进制数字1转化为二进制后向左移动30位。在数值上等同于2的30次幂) 详解:java中int类型的长度为32位,即2的31次方