L'ajout de valeurs à un tableau dynamiquement
Je veux ajouter des données à un tableau au moment de l'exécution, mais je suis un indice lié exception.
String addmembers[] = new String[0];
for (int i=0; i<contactClassList.size(); i++) {
MyClass values = contactClassList.get(i);
String name = values.getUsernameEmail();
Boolean isChecked = values.isChecked;
if (isChecked) {
addmembers[addmembers.length] = name;
}
System.out.println("Value of Array===" + addmembers.length);
}
- À l'avenir des questions, s'il vous plaît prêter plus d'attention à la mise en forme - l'indentation de ton code est tous sur la place.
- Ok Merci @JonSkeet
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas ajouter à un tableau. Une fois que vous avez créé, sa taille est fixe. Vous feriez mieux d'utiliser un
ArrayList
, et juste appeleradd
.ArrayList est la bonne structure de données pour un tel problème. Dans le cas où vous lié à l'utilisation de tableau et ce que vous avez besoin d'un grossissement de pouvoir ensuite utiliser ces solutions La mémoire la plus efficace pour stimuler la croissance d'un tableau en Java?
Ne pas utiliser des Tableaux pour un peu plus de quantité de données. Il serait mieux si vous utilisez ArrayList. Je tiens à rectifier votre erreur et vous donner cette réponse. Vous avez défini le tableau de Chaîne de taille 0 et d'essayer d'ajouter des éléments qui n'est pas possible. Afin de déclarer le tableau de taille que ce que vous avez besoin, dans votre code ci-dessus
contactClassList.size()
Que par votre code, il ne manquera pas de vous donner ce message, car vous êtes l'initialisation de tableau avec des 0 taille.
Au lieu de cela, vous pouvez utiliser
ArrayList
ouList<T>
alors vous serez en mesure d'ajouter dynamiquement des valeurs.Donc, c'est de la pâte à l'utilisation de deux au lieu du tableau.
Votre tableau
addmembers
est de taille[0] qui, une fois créé ne peut pas être changé, pourquoi n'utilisez-vous pasList
, comme le son d'une taille dynamiqueQuelque chose comme ceci permettra de résoudre votre problème.