偶然看到一道题,ArrayList list = new ArrayList(20);中的list扩充几次?
答:0次;
在不指定容量的情况下,是需要扩容的,但是这里已经指定了容量为20,所以不需要扩容。
1.ArrayList、Vector(List):
ArrayList非同步 线程不安全的 所以它的查询效率高,初始容量为10,超过初始容量后 扩容为原来的1.5倍+1,也就是16。
Vector同步 线程安全,初始容量为10,扩容为原来的2倍,也就是20。
2.HashMap(Map):
初始容量为16,元素个数 超过 容量长度的0.75倍 时,扩容为原来的2倍也就是32
3.HashSet(Set):
线程不安全,存取速度快,初始容量为16,元素个数 超过 容量长度的0.75倍 时,扩容为原来的2倍也就是32。