Класс Random. Методы получения наборов случайных чисел
Содержание
- 1. Метод doubles(). Создать поток данных, содержащий случайные числа типа double
- 2. Метод ints(). Получить данные типа int в виде потока случайных чисел
- 3. Метод longs(). Получить данные типа long в виде потока случайных чисел
- 4. Метод nextBytes(). Получить массив случайных чисел типа byte[]
- Связанные темы
Поиск на других ресурсах:
1. Метод doubles(). Создать поток данных, содержащий случайные числа типа double
Метод doubles() создает поток данных, состоящий из случайных чисел типа double. Числа имеют значение от 0 до 1. Метод имеет несколько реализаций. Наиболее распространенные реализации метода выглядят следующим образом
DoubleStream doubles();
DoubleStream doubles(long streamSize);
здесь
- streamSize – количество чисел, которые необходимо сгенерировать в потоке данных.
Первая реализация (без параметров) позволяет создавать неограниченный поток данных. Вторая реализация метода doubles() генерирует поток данных фиксированного размера.
Чтобы использовать класс DoubleStream, нужно подключить модуль.
import java.util.stream.DoubleStream;
Пример.
import java.util.Iterator; // нужно для использования класса Iterator<> import java.util.Random; // нужно для использования класса Random import java.util.stream.DoubleStream; // нужно для использования класса DoubleStream public class MathFunctions { public static void main(String[] args) { // 1. Создать поток на основе произвольного начального значения Random r1 = new Random(); // // 2. Получить поток из 10 чисел типа double DoubleStream ds1 = r1.doubles(10); // 3. Получить итератор на поток ds1 Iterator<Double> it1 = ds1.iterator(); // 4. Вывести в цикле 10 случайных чисел из потока ds1 System.out.println("Stream ds1:"); while (it1.hasNext()) { System.out.println(it1.next()); } } }
Результат
Stream ds1: 0.03296957043047 0.5816373543355657 0.6067884839512304 0.3600735235508934 0.5041601996294538 0.8372554459494158 0.7894095095554403 0.23663204256820447 0.5334022228843057 0.5142652199413285
⇑
2. Метод ints(). Получить данные типа int в виде потока случайных чисел
Метод ints() создает поток случайных чисел типа IntStream. Наиболее распространенные реализации метода выглядят следующим образом
IntStream ints();
IntStream ints(long streamSize);
здесь
- streamSize – количество элементов в потоке данных типа int.
Первая реализация метода (без параметров) создает поток случайных чисел типа int неограниченного размера. Вторая реализация позволяет установить ограничение в потоке размером streamSize.
Чтобы использовать тип IntStream и подобные ему в начале модуля нужно включить строку
import java.util.stream.*;
Пример.
В примере методом ints() без параметров создается поток неограниченного размера. Затем выводятся первые 5 элементов потока.
import java.util.Iterator; // нужно для использования класса Iterator<> import java.util.Random; // нужно для использования класса Random import java.util.stream.*; // нужно для использования класса IntStream public class MathFunctions { public static void main(String[] args) { // 1. Создать поток на основе произвольного исходного значения Random r1 = new Random(); // 2. Получить поток с неограниченным количеством чисел типа int IntStream rndInt = r1.ints(); // 3. Получить итератор на поток rndInt Iterator<Integer> it1 = rndInt.iterator(); // 4. Вывести в цикле 5 случайных чисел из потока rndInt int value; System.out.println("Stream rndInt:"); for (int i=0; i<5; i++) { // Получить случайное число value = it1.next(); // Вывести число на экран System.out.println(value); } } }
Результат
Stream rndInt: 2119189406 -15495572 -2068391741 271674312 742325160
⇑
3. Метод longs(). Получить данные типа long в виде потока случайных чисел
Метод longs() подобен методам doubles() и ints(). Метод формирует поток случайных чисел типа LongStream. Объявление наиболее распространенных реализаций метода имеет вид
LongStream longs();
LongStream longs(long streamSize);
где
- streamSize – количество чисел типа long, которые нужно сформировать.
Первая реализация метода формирует поток чисел неограниченного размера. Вторая реализация формирует поток из 10 чисел.
Пример.
В примере первоначально формируется поток из 10 случайных чисел типа long. Затем этот поток выводится на экран.
import java.util.Iterator; // нужно для использования класса Iterator<> import java.util.Random; // нужно для использования класса Random import java.util.stream.*; // нужно для использования класса LongStream public class MathFunctions { public static void main(String[] args) { // 1. Создать поток на основе произвольного начального значения Random rnd = new Random(); // 2. Получить поток содержащий 10 чисел типа long - метод longs() LongStream stream = rnd.longs(10); // 3. Получить итератор на поток stream Iterator<Long> it = stream.iterator(); // 4. Вывести в цикле 10 случайных чисел из потока stream System.out.println("Stream of Long numbers:"); for (int i=0; i<10; i++) { // Получить случайное число типа long long value = it.next(); // Вывести число на экран System.out.println(value); } } }
Результат
Stream of Long numbers: -846271452660413200 -3239665480282540853 -4825523866103987302 -6364844712541754488 752243074034471911 6039172197582870129 9130557788351257634 5320620246218395762 -5038665701090253375 -924371785716259808
⇑
4. Метод nextBytes(). Получить массив случайных чисел типа byte[]
Метод nextBytes() заполняет входной массив случайными числами, имеющими тип byte. Согласно документации синтаксис объявления метода следующий
void nextBytes(byte[] bytes);
здесь
- bytes – заданный массив некоторой длины. Заполняются все элементы массива. Значения элементов массива лежат в пределах [-128; 127].
Пример.
import java.util.Random; public class MathFunctions { public static void main(String[] args) { // 1. Создать поток на основе произвольного начального значения Random rnd = new Random(); // 2. Создать массив AB из 10 элементов типа byte byte[] AB = new byte[10]; // 3. Заполнить массив AB случайными числами rnd.nextBytes(AB); // 4. Вывести массив на экран System.out.println("Array AB:"); for (int i=0; i<AB.length; i++) System.out.println(AB[i]+" "); } }
Результат
Array AB: -67 -86 98 -61 16 -44 -73 96 -40 -80
⇑
Связанные темы
⇑