Même si ce n'est pas une réponse directe à la question, c'est un ajout à l' .length
vs .size()
argument. J'ai été la recherche de quelque chose lié à cette question, alors quand je suis tombée sur elle, j'ai remarqué que la définition(s) fourni ici
Le public final de la longueur de champ, qui contient le nombre de composants de la matrice.
n'est pas "exactement" à corriger.
La longueur de champ contient le nombre de places disponibles pour mettre un composant, pas le nombre de composants présents dans le tableau. Donc, il représente la totalité de la mémoire allouée à ce tableau, pas de combien de mémoire est remplie.
Exemple:
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("Lenght of int[]:\t" + test.length);
String[] test2 = new String[5];
test2[0] = "2";
test2[1] = "33";
System.out.println("Lenght of String[]:\t" + test2.length);
StuffClass[] test3 = new StuffClass[5];
test3[0] = new StuffClass(2);
test3[1] = new StuffClass(33);
System.out.println("Lenght of StuffClass[]:\t" + test3.length);
}
Sortie:
Lenght of int[]: 5
Lenght of String[]: 5
Lenght of StuffClass[]: 5
Cependant, l' .size()
de la propriété de l' ArrayList
donne le nombre d'éléments dans la liste:
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());
Sortie:
List size: 0
List size: 1
List size: 2