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