黑马程序员技术交流社区

标题: ArrayList list = new ArrayList(20);中的list扩充几次 [打印本页]

作者: 猪猪fly侠    时间: 2015-4-30 14:52
标题: ArrayList list = new ArrayList(20);中的list扩充几次
本帖最后由 猪猪fly侠 于 2015-5-1 10:42 编辑

如题 ArrayList list = new ArrayList(20);中的list扩充几次   A 0     B 1     C 2      D 3


作者: 1017161726    时间: 2015-4-30 15:13
应该是默认10个元素的容量,然后扩充一半,再扩充一半。扩充两次。
作者: BertYan    时间: 2015-4-30 15:14
2
默认长度是10  一次扩容50%
作者: 猪猪fly侠    时间: 2015-4-30 17:48
1017161726 发表于 2015-4-30 15:13
应该是默认10个元素的容量,然后扩充一半,再扩充一半。扩充两次。

答案是A啊
作者: 猪猪fly侠    时间: 2015-4-30 17:50
BertYan 发表于 2015-4-30 15:14
2
默认长度是10  一次扩容50%

答案是A啊,?
作者: 乘梦而飞    时间: 2015-4-30 19:15
我就路过看看
作者: 猪猪fly侠    时间: 2015-4-30 21:23
乘梦而飞 发表于 2015-4-30 19:15
我就路过看看

欢迎来看啊看得人多了就有了答案
作者: pengcheng0328    时间: 2015-4-30 21:25
一开始是10个长度,每次扩充50%,所以应该是2次
作者: 猪猪fly侠    时间: 2015-4-30 23:30
pengcheng0328 发表于 2015-4-30 21:25
一开始是10个长度,每次扩充50%,所以应该是2次

可是不对啊亲,难道答案错了?
作者: wkz_crystal    时间: 2015-4-30 23:51
想多了吧,兄弟些!看看api帮助文档中:说的是:构造一个具有指定初始容量的空列表,也就是关于对象一旦建立就指定了容量为20而已,是初始值哦!
作者: l763631191    时间: 2015-5-1 00:16
坑定是0了,你构造的时候定义的初始容量是20!!!压根就没扩充过~
作者: hui1130    时间: 2015-5-1 00:41
A吧,20指的仅仅是给构造函数初始化,它不是代表list集合中有20个元素
作者: 猪猪fly侠    时间: 2015-5-1 10:41
wkz_crystal 发表于 2015-4-30 23:51
想多了吧,兄弟些!看看api帮助文档中:说的是:构造一个具有指定初始容量的空列表,也就是关于对象一旦建 ...

恩,应该是这样,说的有道理
作者: qiningrui    时间: 2016-11-16 10:44
0 次  后面指明多少空间了,就直接分配了 不扩充了
作者: KingLloyd    时间: 2016-12-26 16:56
if(楼层>10){
答案正确
}

选A  是你给定了20 的长度,所以不用扩充了
作者: 面向JAVA    时间: 2016-12-28 00:36
Arraylist初始容量默认不是10,是0好吧,调用add()方法的时候才会扩容;去看下源代码就知道了.
反正我觉得是选A,源代码里面有这样的构造器,你传20,他的长度就为20,不会再扩容了.
当然如果是用add()还是会自动扩容的.具体的建议你去看ArrayList类的源代码
----------个人见解--------------------





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2