Автор оригинала: 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, поэтому его должно быть легко импортировать и запускать.