Какой самый короткий способ написать / создать int [] с 3 уникальными случайными числами, используя поток в java? - PullRequest
3 голосов
/ 16 апреля 2020

Я сейчас использую следующий код:

Map<Integer, Integer> numbersMap = new HashMap<>();
return IntStream.generate(() -> (int)(10 * Math.random() + 1))
                .filter(i -> numbersMap.put(i, i) == null)
                .limit(3)
                .toArray();

Например, мне интересно, есть ли способ сделать это без использования HashMap, так как я использую только ключи .

1 Ответ

4 голосов
/ 16 апреля 2020
IntStream.generate(() -> (int) (10 * Math.random() + 1))
         .distinct()
         .limit(3)
         .toArray();

или

ThreadLocalRandom.current().ints(1, 10 + 1)
                           .distinct()
                           .limit(3)
                           .toArray();
...