Ich möchte ein Array der Größe X
mit zufälligen Ganzzahlen von 0
bis X
ohne Duplikate füllen. Der Haken ist, ich muss nur Arrays verwenden, um die Sammlungen von int
, no ArrayList
s zu speichern. Wie gehe ich bei der Implementierung vor?Generieren von Zufallszahlen ohne Duplikate nur mit Arrays
Ich verstehe nicht, warum ich das nicht bekommen kann. Aber das ist mein letzter Code, der die Liste füllt, aber Duplikate erlaubt.
System.out.print("Zero up to but excluding ");
int limit = scanner.nextInt();
// create index the size of the limit
int [] index = new int[limit];
for(int fill=0;fill<limit;fill+=1){
index[fill] = (limit);
}
int randomNumber = 0;
Random rand = new Random();
int [] randoms = new int[limit];
boolean flag = true;
// CODE TO NOT PRINT DOUBLES
for (int z=0;z<limit;z+=1){
randomNumber = rand.nextInt(limit);
int i=0;
while (i<limit){
if (index[i] == randomNumber){
flag = true;
}
else {
flag = false;
break;
}
i+=1;
}
if (flag == false){
randoms[z] = randomNumber;
index[z] = randomNumber;
}
}
System.out.println("Randoms: "+java.util.Arrays.toString(randoms));
Die Standardmethode hierfür ist die Verwendung einer 'ArrayList', fülle sie mit den Zahlen' 0..X-1' und mische sie dann. Also, mit Arrays, mach dasselbe. –
Related: [Generieren eines Arrays von eindeutigen zufälligen doubles] (http://stackoverflow.com/questions/36119583/generating-a-number-of-unique-doubles-in-java/36119613#36119613) –