Java常见集合底层原理

ArrayList

默认长度0 添加第一个元素创建一个长度为10的数组

1.5倍扩容
在这里插入图片描述

HashMap

默认长度为16 加载因子0.75 2倍扩容
在这里插入图片描述
在这里插入图片描述

HashTable

线程安全

悲观锁 锁整张表

效率低
在这里插入图片描述

ConcurrentHashMap 1.7 1.8

1.7

大数组只能有16个 不能扩容

大数组记录小数组的地址值

小数组可以扩容

二次哈希
在这里插入图片描述

1.8

头结点作为锁对象
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zhangzengxiu/article/details/119767204