이것이 질문에 대한 직접적인 대답은 아니지만 .length
대 .size()
논쟁에 추가됩니다 . 나는이 질문과 관련된 것을 연구하고 있었으므로 그것을 만났을 때 나는 여기에 정의가 제공되어 있음을 알았습니다.
배열의 구성 요소 수 를 포함하는 공개 최종 필드 길이 입니다.
"정확하게"정확하지 않습니다.
필드 길이에는 배열에있는 구성 요소 수가 아니라 구성 요소를 배치 할 수있는 사용 가능한 위치 수가 포함 됩니다. 따라서 해당 메모리에 얼마나 많은 메모리가 채워져 있는지가 아니라 해당 어레이에 할당 된 총 가용 메모리를 나타냅니다.
예:
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