java中如何获取指定区间范围的随机数呢?
在日常开发中,我们经常需要获取指定范围区间的随机数,那么如何使用java代码实现这一需求呢?下文笔者将一一道来,如下所示
3.使用`java.util.Random` 类
获取指定范围区间的随机数的实现思路
-`Random`类: 适用于单线程环境,使用简单 -`ThreadLocalRandom`类: 适用于多线程环境,性能更好 -`Random`类的流方法: 适用于需要生成多个随机数的情况 -`Math.random()`方法: 适用于简单的随机数生成 但不如`Random`类灵活例
1.使用`java.util.Random`类
`Random` 类提供生成随机数的基本功能 可通过设置范围来获取指定区间内的随机数
import java.util.Random;
public class RandomNumberExample {
public static void main(String[] args) {
Random random = new Random();
// 获取 [min, max) 范围内的随机整数
int min = 10;
int max = 50;
int randomInt = random.nextInt(max - min) + min;
System.out.println("Random Integer between " + min + " and " + max + ": " + randomInt);
// 获取 [min, max) 范围内的随机双精度浮点数
double randomDouble = min + (max - min) * random.nextDouble();
System.out.println("Random Double between " + min + " and " + max + ": " + randomDouble);
}
}
2.使用`java.util.concurrent.ThreadLocalRandom`类
`ThreadLocalRandom` 是 `Random` 的一个子类 专门为多线程环境设计,性能更好。
import java.util.concurrent.ThreadLocalRandom;
public class ThreadLocalRandomExample {
public static void main(String[] args) {
// 获取 [min, max) 范围内的随机整数
int min = 10;
int max = 50;
int randomInt = ThreadLocalRandom.current().nextInt(min, max);
System.out.println("Random Integer between " + min + " and " + max + ": " + randomInt);
// 获取 [min, max) 范围内的随机双精度浮点数
double randomDouble = ThreadLocalRandom.current().nextDouble(min, max);
System.out.println("Random Double between " + min + " and " + max + ": " + randomDouble);
}
}
3.使用`java.util.Random` 类
`ints` 和 `doubles` 方法(Java 8 及以上)
import java.util.Random;
public class RandomStreamExample {
public static void main(String[] args) {
Random random = new Random();
// 获取 [min, max) 范围内的随机整数
int min = 10;
int max = 50;
int randomInt = random.ints(min, max).findFirst().getAsInt();
System.out.println("Random Integer between " + min + " and " + max + ": " + randomInt);
// 获取 [min, max) 范围内的随机双精度浮点数
double randomDouble = random.doubles(min, max).findFirst().getAsDouble();
System.out.println("Random Double between " + min + " and " + max + ": " + randomDouble);
}
}
4.使用`Math.random()`方法
`Math.random()` 方法返回一个 `[0.0, 1.0)` 范围内 随机双精度浮点数
public class MathRandomExample {
public static void main(String[] args) {
// 获取 [min, max) 范围内的随机整数
int min = 10;
int max = 50;
int randomInt = (int)(Math.random() * (max - min)) + min;
System.out.println("Random Integer between " + min + " and " + max + ": " + randomInt);
// 获取 [min, max) 范围内的随机双精度浮点数
double randomDouble = min + (max - min) * Math.random();
System.out.println("Random Double between " + min + " and " + max + ": " + randomDouble);
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


