Pourquoi java.lang.IndexOutOfBoundsException
est généré dans cet exemple si la taille de ArrayList a été prédéfinie? Comment résoudre ce problème?Index ArrayList hors limites
int size = 2:
ArrayList<Integer[]> nums = new ArrayList<Integer[]>(size);
Integer[] value1 = {1,2,3};
Integer[] value2 = {1,2};
nums.add(1,value1); // java.lang.IndexOutOfBoundsException
nums.add(0,value2);
Pour être plus clair, il est vraiment que vous ne pouvez pas insérer un élément à un indice qui n'existe pas encore. –
Pour ne pas deviner la sagesse ici, mais le 3e ajout() dans la solution ci-dessus * déplace * le contenu, de sorte que valeur1 est maintenant à l'index 2, pas 1? Le doc sur add() avec un index l'indique. Je crois que le contenu du tableau après ceci serait {value2, null, value1}. – rfeak