Je génère un nombre aléatoire compris entre 40 et 50. Une fois le nombre généré, je l'imprime à l'écran et je l'ajoute à un ArrayList
. Toutefois, si le numéro existe déjà dans le ArrayList
, j'imprimer un message "This number already exists in Array List"
. Donc, le code ne devrait jamais imprimer le même numéro deux fois. Cependant, pour une raison quelconque, il continue à imprimer le même numéro deux fois même s'il existe dans la liste de tableaux. Je ne sais pas ce que je fais mal iciVérifier si le nombre existe déjà
import java.util.ArrayList;
import java.util.Random;
public class RandomNumber {
Random random = new Random();
int x;
int l;
public static void main(String[] args) {
RandomNumber r = new RandomNumber();
r.genNumber(50,40);
}
public void genNumber(int high, int low) {
x = random.nextInt(high-low)+low;
ArrayList<Integer> arl = new ArrayList<Integer>();
if(!arl.contains(x)) {
System.out.println(x);
arl.add(x);
} else if (arl.contains(x)) {
System.out.println("This is already in ArrayList");
}
}
}
Vous venez de générer 1 nombre aléatoire dans votre principale méthode. Comment un nombre existe-t-il déjà dans ArrayList? –
Dites si j'appelle la méthode plusieurs fois, le même nombre ne doit pas imprimer deux fois –
'! Arl.contains (x)' est toujours 'true' car la liste est vide lorsque vous examinez cette condition - vous créez la liste sur la ligne au-dessus de la vérification. –