ArrayList,Vector,HashMap的扩容区别

版权声明:本文为博主原创文章,转载请说明出处 https://blog.csdn.net/u010002184/article/details/89292945

ArrayList不可以设置扩展的容量,默认1.5倍
Vector可以设置扩展的容量,如果设置扩展容量则新容量=旧容量+扩展容量,如果没有设置,新容量=旧容量的2倍(可在Vector的构造函数中设置扩展的容量)


ArrayList的无参构造方法中初始容量为0(初次调用add()会更新为10)
Vector的无参构造方法中初始容量为10

HashMap的无参构造方法中初始容量为0(初次调用put()会更新为16,门限会更新为12=16*0.75)

HashMap扩容时,如果旧容量大于等于最大容量(2^30),则新的门限=2^31 -1,然后函数返回 ;反之新容量=旧容量的2倍,新门限=旧门限的2倍

以上基于jdk1.8

更多可见:ArrayList,LinkedList,Vector的区别

HashMap 1.8 源码解析-数组+链表/红黑树

猜你喜欢

转载自blog.csdn.net/u010002184/article/details/89292945
今日推荐