Java中List、 Set 和 Map 的初始容量和加载因子是什么?

List、 Set 和 Map 的初始容量和加载因子

答:

  1. List
    ArrayList 的初始容量是10,加载因子为0.5;扩容增量:原容量的 0.5倍+1;一次扩容后长度为16。
    Vector 初始容量为10,加载因子1。扩容增量:原容量的1倍,一次扩容后的容量为20。

  2. Set
    HashSet,初始容量为16,加载因子为0.75;扩容增量:原容量的1.6倍;如 HAshSet 的容量为16,一次扩容后容量为32

  3. Map
    HashMap,初始容量16,加载因子0.75;扩容增量:原容量的1倍;如 HashMap 的容量为16,一次扩容后容量为 32


加载因子是什么?

加载因子是表示Hsah表中元素的填满的程度。

若:加载因子越大,填满的元素越多,好处是,空间利用率高了,但:冲突的机会加大了。反之,加载因子越小,填满的元素越少,好处是:冲突的机会减小了,但:空间浪费多了。

冲突的机会越大,则查找的成本越高.反之,查找的成本越小.因而,查找时间就越小。

因此,必须在 "冲突的机会"与"空间利用率"之间寻找一种平衡与折衷. 这种平衡与折衷本质上是数据结构中有名的**"时-空"矛盾**的平衡与折衷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值