A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 猪猪fly侠 于 2015-5-1 10:42 编辑

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

15 个回复

倒序浏览
应该是默认10个元素的容量,然后扩充一半,再扩充一半。扩充两次。
回复 使用道具 举报
2
默认长度是10  一次扩容50%
回复 使用道具 举报
1017161726 发表于 2015-4-30 15:13
应该是默认10个元素的容量,然后扩充一半,再扩充一半。扩充两次。

答案是A啊
回复 使用道具 举报
BertYan 发表于 2015-4-30 15:14
2
默认长度是10  一次扩容50%

答案是A啊,?
回复 使用道具 举报
我就路过看看
回复 使用道具 举报

欢迎来看啊看得人多了就有了答案
回复 使用道具 举报
一开始是10个长度,每次扩充50%,所以应该是2次
回复 使用道具 举报
pengcheng0328 发表于 2015-4-30 21:25
一开始是10个长度,每次扩充50%,所以应该是2次

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

恩,应该是这样,说的有道理
回复 使用道具 举报
0 次  后面指明多少空间了,就直接分配了 不扩充了
回复 使用道具 举报
if(楼层>10){
答案正确
}

选A  是你给定了20 的长度,所以不用扩充了
回复 使用道具 举报
Arraylist初始容量默认不是10,是0好吧,调用add()方法的时候才会扩容;去看下源代码就知道了.
反正我觉得是选A,源代码里面有这样的构造器,你传20,他的长度就为20,不会再扩容了.
当然如果是用add()还是会自动扩容的.具体的建议你去看ArrayList类的源代码
----------个人见解--------------------
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马