Meskipun ini bukan jawaban langsung untuk pertanyaan, ini merupakan tambahan dari argumen .length
vs. .size()
Saya sedang meneliti sesuatu yang berkaitan dengan pertanyaan ini, jadi ketika saya menemukan itu, saya perhatikan bahwa definisi yang diberikan di sini
Panjang bidang akhir publik, yang berisi jumlah komponen array .
tidak "tepat" benar.
Panjang bidang berisi jumlah tempat yang tersedia untuk meletakkan komponen, bukan jumlah komponen yang ada dalam array. Jadi itu mewakili total memori yang tersedia dialokasikan untuk array itu, bukan berapa banyak memori yang diisi.
![Alokasi Memori Array](https://i.stack.imgur.com/FSA5d.png)
Contoh:
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);
}
Keluaran:
Length of int[]: 5
Length of String[]: 5
Length of StuffClass[]: 5
Namun, .size()
properti ArrayList
tidak memberikan jumlah elemen dalam daftar:
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());
Keluaran:
List size: 0
List size: 1
List size: 2