首页 > 编程语言 > 详细

【2020面试】- Java中常见集合的默认大小以及扩容机制

时间:2020-11-22 22:27:20      阅读:58      评论:0      收藏:0      [点我收藏+]

list元素时有序的、可重复
Arraylist、vector默认初始化容量为10

vector:线程安全,但速度慢
底层数据结构为数组结构
加载因子为1:即当元素个数超过容量长度时,进行扩容
扩容增量:原容量的1倍
如vector的容量为10,一次扩容后是容量为20

ArrayList:线程不安全,查询速度快
底层数据结构是数组结构
扩容增量:原容量的0.5倍+1
如ArrayList的容量为10,一次扩容后是容量为16

Set元素无序、不可重复
hashset:线程不安全,存取速度快
底层实现是一个HashMap(保存数据),实现Set接口
默认初始化容量为16(为何是16,见下方对HashMap的描述)
加载因子为0.75:即当元素个数超过容量长度的0.75倍时,进行扩容
扩容增量:原容量的1倍
如hashSet的容量为16,一次扩容后是容量为32

Map是一个双列集合
HashMap:默认初始容量为16
(为何是16:16是2^4,可以提高查询效率,另外,32=16<<1)
加载因子为0.75:即当元素个数超过容量长度的0.75配时,进行扩容
扩容增量:原容量的1倍
如hashSet的容量为16,一次扩容后是容量为32

【2020面试】- Java中常见集合的默认大小以及扩容机制

原文:https://www.cnblogs.com/juihai/p/14021248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!