在I级课程的练习测试中,有以下问题:
对错。初始化ArrayList后,无法更改ArrayList的大小。
立即查看问题,我认为答案是 false 。如果初始化ArrayList,则可以继续向其添加无限元素,ArrayList将自动调整大小。但是,答案密钥声称答案是 true 。为什么会这样?幕后是否有我不理解的事情?
编辑:导师告诉我答案键实际上是一个错误。谢谢你的帮助。
答案 0 :(得分:6)
假。引用javadoc,它将数组列表解释为
List接口的可调整大小的数组实现。
此外,它还解释了
每个ArrayList实例都有一个容量。容量是大小 用于存储列表中元素的数组。它总是在 至少与列表大小一样大。随着元素被添加到 ArrayList,其容量自动增长。
此外,对于ArrayList,初始化时无法设置大小。但是可以设置初始容量。大小是列表中元素的数量。
答案 1 :(得分:1)
是。设置一个值只是一个初始长度。如果你试图将一个元素添加到" full"列表,它会增加大小。只有数组的大小是固定的。
编辑:
对错。之后无法更改ArrayList的大小 ArrayList已初始化。
这句话是错误的。通过添加更多元素可以轻松改变大小。
答案 2 :(得分:0)
请记住..涉及到两件事...... 容量和大小..
capacity表示列表可以包含多少个最大元素 容纳它,大小代表有多少元素 目前列在目录中..容量是自动的 增加一定数量(10,20,30 ......)的基础上 当大小等于容量时的当前大小..
如果您遇到问题,如果这是相关代码,则无法更改大小...(常见的Java问题)
public static void main(String[] args) {
int []a = {1,2,3};
List l = Arrays.asList(a);
l.add(4); //error java.lang.UnsupportedOperationException
System.out.println(l);
}
答案 3 :(得分:0)
如果考虑到如果达到大小,则在ArrayList中创建新数组(以及复制到其中的旧数据的数据)这一事实可能是真的(以扭曲的方式)。但这就像是说,因为你更换了计算机中的一个部件,它就是一个新部件。
我相信你应该去问一个答案的解释。
答案 4 :(得分:0)
错误,当您添加或删除列表元素时,可以随时更改java中的Arraylist
答案 5 :(得分:0)
数组的大小不是动态的。它不会增长。
为了克服这个问题,Collections已经提出了这个功能。
ArrayList大小是动态的。如果我们用初始容量初始化它,它将创建一个具有相同容量的arraylist。如果代码增加的数量超过初始容量,则根据负载因子,大小会增加。
这是一个解释这个问题的例子:
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> arr= new ArrayList<String>(2);
arr.add("apple");
arr.add("apple");
arr.add("apple");
System.out.println(arr);
}
上述代码没有错误。它打印ArrayList。
控制台输出
[apple, apple, apple]
根据您的问题,当您初始化Arraylist [此处我将容量设为2]时,size为0(即arr.size()为0)但是如果在Arralylist分配了&#后打印大小34;苹果&#34;,大小为3。