【Java】JDK8生成随机数

在Java8中,ThreadLocalRandom类提供了更高效、更适合多线程环境的随机数生成方法,如生成指定范围的整数、浮点数以及布尔值。相比传统的Random类,ThreadLocalRandom在多线程应用中表现更优。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Jdk8生成随机数

Jdk8以前


Jdk8生成随机数

在Java 8中,可以使用ThreadLocalRandom类来生成随机数。相比于早期的Random类,ThreadLocalRandom类可以更好地支持多线程应用,性能也更优。下面是使用ThreadLocalRandom类生成随机数的几种方法:

生成一个0到n之间的随机整数(不包含n):

import java.util.concurrent.ThreadLocalRandom;
int n = 10; // 范围在0到9之间
int randomNum = ThreadLocalRandom.current().nextInt(n);

生成一个范围在min和max之间的随机整数:

import java.util.concurrent.ThreadLocalRandom;
int min = 1;
int max = 100;
int randomNum = ThreadLocalRandom.current().nextInt(min, max + 1);

此例中,生成的随机数范围在1到100之间。

生成一个0到1之间的随机浮点数:

import java.util.concurrent.ThreadLocalRandom;
float randomFloat = ThreadLocalRandom.current().nextFloat();

生成一个0到n之间的随机浮点数:

import java.util.concurrent.ThreadLocalRandom;
int n = 10; // 范围在0到9之间
float randomFloat = ThreadLocalRandom.current().nextFloat() * n;

这个例子中,生成的范围在0到9之间的随机浮点数(不包含9)。

生成一个随机布尔值:

import java.util.concurrent.ThreadLocalRandom;
boolean randomBoolean = ThreadLocalRandom.current().nextBoolean();

以上是五种常见的随机数生成方法。除了这些方法,ThreadLocalRandom类还提供了更多的随机数生成方法,可以根据实际需要选择使用。

Jdk8以前

在Java中,可以使用内置的Random类来生成随机数。下面是使用Random类生成随机数的几种方法:

生成一个0到n之间的随机整数(不包含n):

import java.util.Random;
Random rand = new Random();
int n = 10; // 范围在0到9之间
int randomNum = rand.nextInt(n);

生成一个范围在min和max之间的随机整数:

import java.util.Random;
Random rand = new Random();
int min = 1;
int max = 100;
int randomNum = rand.nextInt((max - min) + 1) + min;

此例中,生成的随机数范围在1到100之间。

生成一个0到1之间的随机浮点数:

import java.util.Random;
Random rand = new Random();
float randomFloat = rand.nextFloat();

生成一个0到n之间的随机浮点数:

import java.util.Random;
Random rand = new Random();
int n = 10; // 范围在0到9之间
float randomFloat = rand.nextFloat() * n;

这个例子中,生成的范围在0到9之间的随机浮点数(不包含9)。

生成一个随机布尔值:

import java.util.Random;
Random rand = new Random();
boolean randomBoolean = rand.nextBoolean();

以上是五种常见的随机数生成方法。除了这些方法,Random类还提供了很多其他的随机数生成方法,可以根据实际需要选择使用。

有用请点赞养成良好习惯!

疑问交流鼓励请留言!

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕白Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值