gpt4 book ai didi

java - 为什么数组被初始化为默认值而不是 java 中的 arraylist?

转载 作者:搜寻专家 更新时间:2023-10-31 08:05:29 25 4
gpt4 key购买 nike

ArrayList 的实现在底层使用了Array。但是,Arrays 被初始化为默认值 (0 或 null)ArrayList 只是空的。这是为什么?

       int[] arr = new int[10];
String[] arr1 = new String[11];
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr1));
List<Integer> list = new ArrayList<Integer>(10);
System.out.println(list);

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[null, null, null, null, null, null, null, null, null, null, null]
[]

这意味着每次我使用 ArrayList 时,我都需要填写内容;我在我的代码中尝试下面的部分,它抛出 NoSuchElementException 然后我意识到它不是默认的,而 Arrays

if (list.get(i)==null){
list.add(i,x);
else:
list.add(i,list.get(i)+x)

编辑:

even List<Integer> list = new ArrayList<Integer>(10);
prints [] although I initialized the size;

最佳答案

构造数组时,数字是数组的实际 大小(以后不能更改)。 ArrayList 构造函数中的数字是初始容量(为元素保留的空间),但大小 为零。 ArrayList 的大小可以在构造后更改。

关于java - 为什么数组被初始化为默认值而不是 java 中的 arraylist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21444973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com