Java - случайные длинные, плавающие, целые и двойные
Этот краткий учебник покажет, как сгенерировать длинный сначала с использованием простой Java и библиотеки Apache Commons Math.
Эта статья является частьюthe “Java – Back to Basic” series здесь для примера.
1. Создайте неограниченную длинную
Начнем с создания Long:
@Test
public void givenUsingPlainJava_whenGeneratingRandomLongUnbounded_thenCorrect() {
long generatedLong = new Random().nextLong();
}
2. Создать длинную строку в пределах диапазона
2.1. Случайная длинная запись с простой Java
Далее - давайте посмотрим на создание случайного ограниченного значения Long, то есть значения Long в заданном диапазоне или интервале:
@Test
public void givenUsingPlainJava_whenGeneratingRandomLongBounded_thenCorrect() {
long leftLimit = 1L;
long rightLimit = 10L;
long generatedLong = leftLimit + (long) (Math.random() * (rightLimit - leftLimit));
}
2.2. Случайная длинная длина с помощью математики Apache Commons
Давайте посмотрим, как сгенерировать случайный Long с помощью более чистого API и Commons Math:
@Test
public void givenUsingApacheCommons_whenGeneratingRandomLongBounded_thenCorrect() {
long leftLimit = 10L;
long rightLimit = 100L;
long generatedLong = new RandomDataGenerator().nextLong(leftLimit, rightLimit);
}
3. Создать неограниченное целое число
Давайте перейдем к генерации случайного целого числа без границ:
@Test
public void givenUsingPlainJava_whenGeneratingRandomIntegerUnbounded_thenCorrect() {
int generatedInteger = new Random().nextInt();
}
Как видите, он довольно близок к генерации длинного.
4. Сгенерировать целое число в диапазоне
4.1. Случайное целое число с простой Java
Далее - случайное целое число в заданном диапазоне:
@Test
public void givenUsingPlainJava_whenGeneratingRandomIntegerBounded_thenCorrect() {
int leftLimit = 1;
int rightLimit = 10;
int generatedInteger = leftLimit + (int) (new Random().nextFloat() * (rightLimit - leftLimit));
}
4.2. Случайное целое число с математикой общего пользования
И то же самое с Общей Математикой:
@Test
public void givenUsingApache_whenGeneratingRandomIntegerBounded_thenCorrect() {
int leftLimit = 1;
int rightLimit = 10;
int generatedInteger = new RandomDataGenerator().nextInt(leftLimit, rightLimit);
}
5. Создать неограниченное плавание
Теперь давайте перейдем к генерации случайных чисел с плавающей запятой - сначала неограниченных:
@Test
public void givenUsingPlainJava_whenGeneratingRandomFloatUnbouned_thenCorrect() {
float generatedFloat = new Random().nextFloat();
}
6. Создать поплавок в пределах диапазона
6.1. Случайное число с плавающей запятой с простой Java
И ограниченное случайное плавание:
@Test
public void givenUsingPlainJava_whenGeneratingRandomFloatBouned_thenCorrect() {
float leftLimit = 1F;
float rightLimit = 10F;
float generatedFloat = leftLimit + new Random().nextFloat() * (rightLimit - leftLimit);
}
6.2. Случайное число с плавающей запятой с математикой Commons
Теперь - ограниченное случайное число с Commons Math:
@Test
public void givenUsingApache_whenGeneratingRandomFloatBounded_thenCorrect() {
float leftLimit = 1F;
float rightLimit = 10F;
float randomFloat = new RandomDataGenerator().getRandomGenerator().nextFloat();
float generatedFloat = leftLimit + randomFloat * (rightLimit - leftLimit);
}
7. Создать неограниченный дубль
7.1. Случайный неограниченный двойник с простой Java
Наконец, мы собираемся сгенерировать случайные двойные значения - сначала с помощью Java Math API:
@Test
public void givenUsingPlainJava_whenGeneratingRandomDoubleUnbounded_thenCorrect() {
double generatedDouble = Math.random();
}
7.2. Случайный неограниченный двойной с математикой Commons
А также случайное двойное значение с библиотекой Apache Commons Math:
@Test
public void givenUsingApache_whenGeneratingRandomDoubleUnbounded_thenCorrect() {
double generatedDouble = new RandomDataGenerator().getRandomGenerator().nextDouble();
}
8. Сгенерировать двойник в пределах диапазона
8.1. Случайный ограниченный двойной с простой Java
В этом примере давайте посмотрим на случайное двойное значение, сгенерированное в интервале - с помощью Java:
@Test
public void givenUsingPlainJava_whenGeneratingRandomDoubleBounded_thenCorrect() {
double leftLimit = 1D;
double rightLimit = 10D;
double generatedDouble = leftLimit + new Random().nextDouble() * (rightLimit - leftLimit);
}
8.2. Случайный ограниченный двойной с математикой общего пользования
И, наконец, случайный двойной интервал с использованием библиотеки Apache Commons Math:
@Test
public void givenUsingApache_whenGeneratingRandomDoubleBounded_thenCorrect() {
double leftLimit = 1D;
double rightLimit = 100D;
double generatedDouble = new RandomDataGenerator().nextUniform(leftLimit, rightLimit);
}
И у вас это есть - быстрые и конкретные примеры того, как генерировать как неограниченные, так и ограниченные значения для наиболее распространенных числовых примитивов в Java.
9. Заключение
Этот урок иллюстрирует, как мы можем генерировать случайные числа, связанные или несвязанные, используя различные методы и библиотеки.
Как всегда, реализацию всех этих примеров и фрагментов можно найти вGitHub project. Это проект на основе Maven, поэтому его легко импортировать и запускать.