Languages
[Edit]
PL

Java - generuj unikalne liczby losowe

3 points
Created by:
Sylwia
3500

Istnieje kilka sposob├│w generowania unikalnych liczb losowych w Javie.

1. Collections.shuffle z listy

List<Integer> list = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
	list.add(i);
}
Collections.shuffle(list);

// [8, 9, 7, 2, 10, 5, 3, 6, 1, 4]
System.out.println(list);
Collections.shuffle(list) - java docs: Losowo permutuje okre┼Ťlon─ů list─Ö przy u┼╝yciu domy┼Ťlnego ┼║r├│d┼éa losowo┼Ťci.
Wszystkie permutacje wyst─Öpuj─ů z mniej wi─Öcej r├│wnym prawdopodobie┼ästwem.

 

2. HashSet z liczbami losowymi od 1 do 20

Set<Integer> unique = new HashSet<>();

while (unique.size() != 10) {
	int randInt = ThreadLocalRandom.current().nextInt(1, 20);
	unique.add(randInt);
}

// [16, 1, 17, 18, 6, 9, 10, 13, 14, 15]
System.out.println(unique.toString());

Generujemy nowe unikalne liczby, dop├│ki HashSet nie osi─ůgnie oczekiwanego rozmiaru.

3. Java 8 - Random + IntStream + distinct + limit

List<Integer> list = ThreadLocalRandom.current()
        .ints(1, 20)
        .boxed()
        .distinct()
        .limit(10)
        .collect(Collectors.toList());

// [3, 17, 9, 15, 4, 19, 18, 16, 14, 8]
System.out.println(list);

ints(1, 20) - generuje liczby losowe od 1 do 20
limit(10) - wielko┼Ť─ç naszej kolekcji wyj┼Ťciowej b─Ödzie wynosi─ç 10

Native Advertising
­čÜÇ
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - friendly IT community for everyone.

ÔŁĄ´ŞĆ­čĺ╗ ­čÖé

Join