J'ai un artiste où je veux ajouter des éléments via une boucle for.
Answer answer1;
Answer answer2;
Answer answer3;
ArrayList<Answer> answers = new ArrayList(3);
for (int i=0;i<3;i++)
{
answers.add(//HOWTO: Add each of the answers?);
}
EDIT: Comment cela irait si j'ai, disons 50 éléments de réponse?
Vous ne pouvez pas le faire comme vous essayez ... pouvez-vous faire quelque chose comme ça:
List<Answer> answers = new ArrayList<Answer>();
for(int i=0; i < 4; i++){
Answer temp = new Answer();
//do whatever initialization you need here
answers.add(temp);
}
Cela ne peut pas être fait avec une boucle for
- sauf si vous utilisez l'API de Reflection. Cependant, vous pouvez utiliser Arrays.asList
pour accomplir la même chose:
List<Answer> answers = Arrays.asList(answer1, answer2, answer3);
pourquoi vous avez besoin d'une boucle for pour cela? la solution est très évidente:
answers.add(answer1);
answers.add(answer2);
answers.add(answer3);
c'est tout. pas de boucle nécessaire.
Si vous avez simplement besoin d'une liste, vous pouvez utiliser:
List<Answer> answers = Arrays.asList(answer1, answer2, answer3);
Si vous avez spécifiquement besoin d'une ArrayList
, vous pouvez utiliser:
ArrayList<Answer> answers = new ArrayList(Arrays.asList(answer1, answer2, answer3));
Utiliser une fonction aléatoire pour générer un nombre et les itérer sur al
à l'aide de la boucle for
ArrayList<Integer> al=new ArrayList<Integer>(5);
for (int i=0;i<=4;i++){
Random Rand=new Random();
al.add(i,Rand.nextInt(100));
System.out.println(al);
}
System.out.println(al.size());
Mettez les réponses dans un tableau et parcourez-le:
List<Answer> answers = new ArrayList<Answer>(3);
for (Answer answer : new Answer[] {answer1, answer2, answer3}) {
list.add(answer);
}
MODIFIER
Voir la réponse de João pour une bien meilleure solution. Je laisse encore ma réponse ici comme une autre option.
Il y a toujours des astuces de réflexion que vous pouvez adapter. Voici un exemple, mais l’utilisation d’une collection serait la solution à votre problème (les entiers que vous collez sur le nom de votre variable sont un bon indice nous invitant à utiliser une collection!).
public class TheClass {
private int theField= 42;
public static void main(String[] args) throws Exception {
TheClass c= new TheClass();
System.out.println(c.getClass().getDeclaredField("theField").get(c));
}
}
La solution de Thomas est assez bonne pour cette affaire.
Si vous voulez utiliser une boucle pour accéder à ces trois réponses, vous devez d’abord en insérer trois dans une structure de données semblable à un tableau - un peu comme un principe. Donc, la boucle est utilisée pour opérer sur une structure de données semblable à un tableau, pas simplement pour simplifier la tâche de frappe. Et vous ne pouvez pas utiliser la boucle FOR en donnant simplement des noms de nombre croissant aux éléments.