bra*_*orm 5 java arrays list arraylist
引擎盖下ArrayList使用的实施Array.但是,Arrays初始化为默认值(0 or 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]
[]
Run Code Online (Sandbox Code Playgroud)
这意味着我每次使用时ArrayList,都需要填写内容; 我想在我的代码下面的一部分,它被扔NoSuchElementException,然后我意识到,这不是违约,作为地方Arrays做
if (list.get(i)==null){
list.add(i,x);
else:
list.add(i,list.get(i)+x)
Run Code Online (Sandbox Code Playgroud)
编辑:
even List<Integer> list = new ArrayList<Integer>(10);
prints [] although I initialized the size;
Run Code Online (Sandbox Code Playgroud)
Gre*_*ill 12
构造数组时,数字是数组的实际大小(以后不能更改).ArrayList构造函数中的数字是初始容量(为元素保留的空间),但大小为零.在ArrayList构造之后,它的大小会发生变化.
创建数组时,您指定大小。这是必需的,因为数组的大小在创建后就无法更改。那么,数组的每个元素中都必须包含一些内容,最明显的内容是0or null。
另一方面,ArrayLists 被设计为能够调整大小。因此,您在创建它们时不必指定大小。如果起始大小大于零,则必须初始化所有这些元素,并且不这样做更容易。所以起始大小为零。
| 归档时间: |
|
| 查看次数: |
12861 次 |
| 最近记录: |