Рубрики
Без рубрики

Java – Случайные длинные, плавающие, целочисленные и двойные

Узнайте, как генерировать случайные числа в Java – как неограниченные, так и в пределах заданного интервала.

Автор оригинала: Eugen Paraschiv.

Этот краткий учебник проиллюстрирует, как создать длинный первый, используя простую Java и используя математическую библиотеку Apache Commons.

Эта статья является частью серии “Java – Back to Basic” здесь, на Baeldung.

1. Создайте неограниченную длину

Давайте начнем с генерации длинного:

@Test
public void givenUsingPlainJava_whenGeneratingRandomLongUnbounded_thenCorrect() {
    long generatedLong = new Random().nextLong();
}

2. Создайте длинную в пределах диапазона

2.1. Случайный Наряду С Простой Java

Далее – давайте рассмотрим создание случайного ограниченного длинного значения, то есть длинного значения в заданном диапазоне или интервале:

@Test
public void givenUsingPlainJava_whenGeneratingRandomLongBounded_thenCorrect() {
    long leftLimit = 1L;
    long rightLimit = 10L;
    long generatedLong = leftLimit + (long) (Math.random() * (rightLimit - leftLimit));
}

2.2. Random Long С Apache Commons Math

Давайте взглянем на генерацию случайного лонга с помощью более чистого API и математики Commons:

@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. Случайное Целое Число С Математикой 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

Теперь – ограниченный случайный поплавок с общей математикой:

@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. Случайный Неограниченный Двойник С Общей Математикой

А также случайное двойное значение с математической библиотекой Apache Commons:

@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:

@Test
public void givenUsingApache_whenGeneratingRandomDoubleBounded_thenCorrect() {
    double leftLimit = 1D;
    double rightLimit = 100D;
    double generatedDouble = new RandomDataGenerator().nextUniform(leftLimit, rightLimit);
}

И вот вам он – быстрые и точные примеры того, как генерировать как неограниченные, так и ограниченные значения для наиболее распространенных числовых примитивов в Java.

9. Заключение

В этом уроке показано, как мы можем генерировать случайные числа, связанные или несвязанные, используя различные методы и библиотеки.

Как всегда, реализацию всех этих примеров и фрагментов можно найти в проекте GitHub . Это проект на основе Maven, поэтому его должно быть легко импортировать и запускать.