即使这不是问题的直接答案,它还是.length
vs .size()
参数的补充。我正在研究与此问题相关的内容,因此当我遇到该问题时,我注意到此处提供的定义
公共最终字段长度,其中包含array的组件数。
是“不完全”正确的。
字段长度包含放置组件的可用位置数量,而不是数组中存在的组件数量。因此,它代表分配给该阵列的总可用内存,而不是该内存的多少已被填充。
例:
static class StuffClass {
int stuff;
StuffClass(int stuff) {
this.stuff = stuff;
}
}
public static void main(String[] args) {
int[] test = new int[5];
test[0] = 2;
test[1] = 33;
System.out.println("Length of int[]:\t" + test.length);
String[] test2 = new String[5];
test2[0] = "2";
test2[1] = "33";
System.out.println("Length of String[]:\t" + test2.length);
StuffClass[] test3 = new StuffClass[5];
test3[0] = new StuffClass(2);
test3[1] = new StuffClass(33);
System.out.println("Length of StuffClass[]:\t" + test3.length);
}
输出:
Length of int[]: 5
Length of String[]: 5
Length of StuffClass[]: 5
但是,的.size()
属性ArrayList
确实给出了列表中元素的数量:
ArrayList<Integer> intsList = new ArrayList<Integer>();
System.out.println("List size:\t" + intsList.size());
intsList.add(2);
System.out.println("List size:\t" + intsList.size());
intsList.add(33);
System.out.println("List size:\t" + intsList.size());
输出:
List size: 0
List size: 1
List size: 2