Dies ist die einfachste Methode, um eindeutige Zufallswerte in einem Bereich oder aus einem Array zu generieren .
In diesem Beispiel verwende ich ein vordefiniertes Array, aber Sie können diese Methode auch anpassen, um Zufallszahlen zu generieren. Zuerst erstellen wir ein Beispielarray, aus dem wir unsere Daten abrufen können.
- Generieren Sie eine Zufallszahl und fügen Sie sie dem neuen Array hinzu.
- Generieren Sie eine weitere Zufallszahl und prüfen Sie, ob diese bereits im neuen Array gespeichert ist.
- Wenn nicht, fügen Sie es hinzu und fahren Sie fort
- Andernfalls wiederholen Sie den Schritt.
ArrayList<Integer> sampleList = new ArrayList<>();
sampleList.add(1);
sampleList.add(2);
sampleList.add(3);
sampleList.add(4);
sampleList.add(5);
sampleList.add(6);
sampleList.add(7);
sampleList.add(8);
Aus dem werden sampleList
wir nun fünf Zufallszahlen erzeugen, die eindeutig sind.
int n;
randomList = new ArrayList<>();
for(int i=0;i<5;i++){
Random random = new Random();
n=random.nextInt(8); //Generate a random index between 0-7
if(!randomList.contains(sampleList.get(n)))
randomList.add(sampleList.get(n));
else
i--; //reiterating the step
}
Dies ist konzeptionell sehr einfach. Wenn der generierte Zufallswert bereits vorhanden ist, wiederholen wir den Schritt. Dies wird fortgesetzt, bis alle generierten Werte eindeutig sind.
Wenn Sie diese Antwort nützlich fanden, können Sie sie abstimmen, da das Konzept im Vergleich zu den anderen Antworten sehr einfach ist .
1..100
(dafür gibt es bekannte Algorithmen), aber aufhören, nachdem Sie die erstenn
Elemente ermittelt haben.