В этом кратком руководстве показано, как сгенерировать long first, используя простую Java и математическую библиотеку Apache Commons.
Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.
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();
}
Как вы можете видеть, это довольно близко к генерации long.
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. Случайное целое число с математикой Commons
И то же самое с общей математикой:
@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. Случайный ограниченный двойной с математикой Commons
И, наконец, случайный дубль внутри интервала с использованием библиотеки 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 . Это проект на основе Maven, поэтому его легко импортировать и запускать.