Java集合(四):HashMap

47 阅读1分钟

JDK1.8以后HashMap底层是数组+链表+红黑树

简介

1、底层实现原理为数组+链表+红黑树
2、线程不安全
	1)当发生Hash碰撞时,需要向链表中添加节点,如果两个线程都是向同一节点添加,会导致数据丢失
	2)HashMap扩容是将原来数组的元素添加到一个更大的数组,当多个线程同时扩容时,只会留下来一个数组的数据
3、默认大小是16,是2的4次幂,每次扩容都是变为原来的两倍,可以使添加的元素均匀分布在数组上,避免形成链表
4、加载因子为0.75,因为泊松分布
5、重写了equals和hashCode方法