J'ai le code suivant: Je reçois une erreur d'index hors limites, et je ne sais pas pourquoi. J'ai déclaré la liste code> de la taille 10. Pourquoi est-ce que je reçois cette erreur? P> p>
10 Réponses :
Le tableau initial contenu est spécifié comme "10" le nombre réel d'éléments de la matrice est 0. p>
Pour ajouter "5" au premier index, juste do arr.add (5) p>
La valeur transmise au constructeur ArrayList est la capacité initiale du magasin de support de la matrice. Lorsque vous ajoutez des éléments à un point dépassant cette capacité, l'arrachelist allouera à l'intérieur de la taille d'une taille de stockage et de copier les éléments au nouveau réseau de stockage. P>
regarder dans le code source JDK de Ajoutez vos éléments via arraylist.set (int, e) code> donne un indice: vous devez avoir au moins
n code> éléments de votre liste avant de pouvoir appeler
SET (N-1, E) CODE>. P>
Ajouter () Code> Méthode. P>
Vous avez déclaré une arrayliste code> code>, qui a la capacité initiale de 10 éléments, mais vous n'avez pas ajouté d'élément à cette liste, c'est-à-dire vide. La liste est vide. SET CODE> remplacera un élément existant, mais comme il n'y a pas d'élément dans la liste, l'exception est lancée.
Vous devez ajouter des éléments avant, à l'aide de la méthode
Ajouter code>. P>
capacité initiale code> signifie que la matrice que la liste maintient en interne est de taille 10 au début. Tout en ajoutant plus d'éléments à la liste, la taille de ce réseau interne pourrait changer. P>
Vous devez ajouter des éléments avant, à l'aide de la méthode Set B>.
Non, il y a une virgule dans ma phrase. Vous devez ajouter des éléments avant **, ** Utilisation de la méthode Ajouter i> ou vous devez ajouter des éléments avant Aucune virgule B> à l'aide de la méthode Set i>
Ok a du sens. :) n'a pas remarqué la virgule.
Ce que vous avez passé dans le constructeur n'est que la capacité initiale de la matrice par laquelle la liste est soutenue. La liste est toujours vide après la construction. De plus, vous devez envisager d'utiliser une liste générique si vous souhaitez stocker I.e. Just Integers .. P>
Utiliser arr.add (0.5) code>.
SET code> La méthode remplacera l'élément existant. P>
Set (Int index, e élément) Remplace l'élément à la position spécifiée dans cette liste avec l'élément spécifié. U devrait utiliser ajouter () p>
Si vous regardez le Javadoc Notez qu'il dit:
remplace l'élément à la position spécifiée dans cette liste avec l'élément spécifié. P> BlockQuote>
Vous avez besoin d'un élément avant de pouvoir en remplacer un. Essayez p>
xxx pré> pour simplement ajouter un élément. p> p>
Dans le constructeur, vous avez spécifié une capacité initiale. Cependant, la taille de la liste est toujours 0 parce que vous n'avez pas encore ajouté d'éléments. p>
de la documentation de indexOntOfboundSException - si index hors plage (index <0 || index> = taille ()). P>
blockQuote> arraylist.set () code>: p>
Vous avez une arrayliste initialisée avec nombre d'éléments 0 code> ce qui signifie que vous avez juste un élément
1 code> dans ce tableau. et plus tard, vous ajoutez deux nombres dans ce tableau. p>