Генерация случайных чисел при помощи Stream API

Вернуться назад

10.01.2018

В Java 8 у класса java.util.Random появился набор удобных методов для генерации стримов (Stream) случайных чисел для всех основных числовых типов. Например:

private List<Integer> randomIntsGenerator() {
    return new Random()
            .ints(2516)
            .boxed()
            .collect(Collectors.toList());
}

В данном примеры мы генерим 25 случайных чисел из диапазона от 1 до 5 (указываем 6, т.к. верхняя граница не входит). Затем для удобства производим упаковку примитивов в список (каждый элемент из int преобразуется в Integer). В результате получаем случайные целые числа:

[4, 4, 1, 4, 3, 1, 5, 1, 5, 4, 3, 4, 3, 2, 2, 1, 1, 5, 5, 1, 5, 4, 1, 1, 2]

Класс Random позволяет генерить не только целые числа типа int, но и числа типа long при помощи метода longs() и double через метод doubles().

P.S. Если вам крайне важно равномерное распределение случайных чисел, рекомендуется использовать класс java.security.SecureRandom.

Тэги: Java 8, Collections, Stream API.