Itération sur les deux tableaux en utilisant simultanément pour chaque boucle en Java
Étudiant noms(String[]) et de marques(int[]) sont stockées dans les différents tableaux.
Comment puis-je effectuer une itération sur les deux tableaux en utilisant pour chaque boucle en Java ?
void list() {
for(String s:studentNames) {
System.out.println(s); //I want to print from marks[] alongside.
}
}
Un moyen trivial pourrait être à l'aide de l'indice de la variable dans la même boucle. Est-il une bonne façon de faire?
- Pourquoi est normal (celui avec la variable d'index) pas assez bon?
- envisager une carte. comme hashmap
- Il convient de noter qu'il n'est pas très beau design pour garder les choses qui ont une association dans des tableaux distincts. Au lieu de cela, vous devez utiliser une carte ou créer une classe simple avec nom et la marque des attributs et ont un seul tableau (ou une liste) de ces objets.
- Ces deux tableaux sont en parallèle, et leur seul lien est par l'intermédiaire de l'index (de sorte que vous ne pouvez pas utiliser un renforcement de la boucle parce que vous avez besoin de savoir l'indice). Stefan souligne à juste titre ce qui est très mauvais design qui offre si peu de souplesse, je ne pense pas que c'est jamais utilisé en dehors de l'arbitraire des exemples.
- Comme l'OP, je suis déçu, il n'y a rien de mieux que de le faire comme
for(String s : studentNames, int g : grades) {...}
- double possible de de façon Sexy pour parcourir parallèle des tableaux en Java en utilisant foreach
Vous devez vous connecter pour publier un commentaire.
Le problème sous-jacent est en fait que vous devez vous attacher à la fois des tableaux et itérer à travers juste un tableau.
Voici un TRÈS simpliste de démonstration, vous devez utiliser les getters et les setters et vous devez également utiliser un
List
au lieu d'un tableau, mais cela démontre le point:Vous avez besoin de le faire à l'aide de l'ordinaire
for
boucle, avec un index, comme ceci:Une meilleure approche serait d'utiliser une classe pour stocker un étudiant avec son/ses marques, comme ceci:
Si les deux ont la même taille, je voudrais écrire:
L'autre moyen est d'utiliser un verbose pour la boucle de l'instruction;
i
. Il n'y aura jamais un cas oùi != j
. Dans ce cas, il n'est pas bavard, et honnêtement juste la façon correcte de le faire.