Java集合方面面试题总结

来源:互联网 发布:xquartz2.7.5 mac 编辑:程序博客网 时间:2024/06/03 17:51

ArrayList list = new ArrayList(20);中的list扩充几次?

ArrayList的构造函数总共有三个:
(1)ArrayList()构造一个初始容量为 10 的空列表。
(2)ArrayList(Collection< ? extends E> c)构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
(3)ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。

大家都知道默认ArrayList的长度是10个,所以如果你要往list里添加20个元素肯定要扩充一次(扩充为原来的1.5倍),但是这里显示指明了需要多少空间,所以就一次性为你分配这么多空间,也就是不需要扩充了。


ArrayList和数组的区别

(1)数组的长度是固定的,不可变的。而ArrayList的长度不是固定的,可以自动扩容。

(2 )数组既可以存储基本数据类型,也可以存储引用数据类型,只要所有的数组元素具有相同的类型即可。ArrayList可以存任何引用类型,如String,Object等,但不支持基本数据类型。