004Java基础之JAVA集合详解

JAVA集合详解

1 基础知识详解

参考链接: java集合超详解https://blog.csdn.net/feiyanaffection/article/details/81394745.

2 集合扩容

当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。

list

ArrayList、Vector默认初始容量为10

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

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

hashMap(hashSet底层是hashMap)

HashMap:默认初始容量为16
   (为何是16:2的幂次方可以提高索引查询效率和减少hash碰撞)
    加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍 时,进行扩容
    扩容增量:原容量的 1 倍
    如 HashSet的容量为16,一次扩容后是容量为32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值