Jest to najprostsza metoda generowania unikatowych wartości losowych w zakresie lub z tablicy .
W tym przykładzie będę używał predefiniowanej tablicy, ale możesz dostosować tę metodę również do generowania liczb losowych. Najpierw utworzymy przykładową tablicę, z której będą pobierane nasze dane.
- Wygeneruj liczbę losową i dodaj ją do nowej tablicy.
- Wygeneruj kolejną liczbę losową i sprawdź, czy jest już zapisana w nowej tablicy.
- Jeśli nie, dodaj go i kontynuuj
- w przeciwnym razie powtórz krok.
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);
Teraz sampleList
stworzymy pięć liczb losowych, które są niepowtarzalne.
int n;
randomList = new ArrayList<>();
for(int i=0;i<5;i++){
Random random = new Random();
n=random.nextInt(8);
if(!randomList.contains(sampleList.get(n)))
randomList.add(sampleList.get(n));
else
i--;
}
Jest to koncepcyjnie bardzo proste. Jeśli wygenerowana wartość losowa już istnieje, powtórzymy krok. Będzie to trwało, dopóki wszystkie wygenerowane wartości nie będą unikalne.
Jeśli uznasz tę odpowiedź za przydatną, możesz ją zagłosować, ponieważ jest o wiele prosta w koncepcji w porównaniu z innymi odpowiedziami .
1..100
(są do tego znane algorytmy), ale zatrzymaj się po określeniu pierwszychn
elementów.