📅  最后修改于: 2023-12-03 15:24:32.756000             🧑  作者: Mango
在编写Java程序时,生成随机数是非常常见的需求。Java提供了多种生成随机数的方法,我们将一一介绍。
Math.random()方法返回一个大于等于0.0小于1.0的随机浮点数,即生成一个范围在[0,1)之间的随机数。可以通过将其乘以一个数n,然后向下取整,得到一个范围在[0,n-1]之间的整数随机数。
示例代码:
int randomNumber = (int) (Math.random() * n);
这段代码将生成一个范围在[0,n-1]之间的整数随机数。
Java中的Random类提供了多种生成随机数的方法。
Random类提供了nextInt()方法来生成随机整数。
示例代码:
Random random = new Random();
int randomNumber = random.nextInt(n);
这段代码将生成一个范围在[0,n-1]之间的整数随机数。
Random类提供了nextDouble()和nextFloat()方法来生成随机浮点数。
示例代码:
Random random = new Random();
double randomDouble = random.nextDouble();
float randomFloat = random.nextFloat();
这段代码将生成一个范围在[0.0,1.0)之间的随机浮点数。
Random类提供了nextBoolean()方法来生成随机布尔值。
示例代码:
Random random = new Random();
boolean randomBoolean = random.nextBoolean();
这段代码将生成一个随机布尔值。
在Java 7中引入了ThreadLocalRandom类,可用于生成随机数,此类在多线程环境下效果更佳。
ThreadLocalRandom类提供了nextInt()方法来生成随机整数。
示例代码:
ThreadLocalRandom random = ThreadLocalRandom.current();
int randomNumber = random.nextInt(n);
这段代码将生成一个范围在[0,n-1]之间的整数随机数。
ThreadLocalRandom类提供了nextDouble()和nextFloat()方法来生成随机浮点数。
示例代码:
ThreadLocalRandom random = ThreadLocalRandom.current();
double randomDouble = random.nextDouble();
float randomFloat = random.nextFloat();
这段代码将生成一个范围在[0.0,1.0)之间的随机浮点数。
ThreadLocalRandom类提供了nextBoolean()方法来生成随机布尔值。
示例代码:
ThreadLocalRandom random = ThreadLocalRandom.current();
boolean randomBoolean = random.nextBoolean();
这段代码将生成一个随机布尔值。
Java中提供了多种生成随机数的方法,选择最合适的方法可根据实际需要。Math.random()方法可用于简单的随机数生成,Random类可用于生成随机整数、浮点数和布尔值,ThreadLocalRandom类可用于多线程环境下的随机数生成。