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); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。