普通的Java教程——生成指定范围内的随机数

本文翻译自 baeldung 的博客,版权归原作者所有。
1. 概述
在本教程中,我们将探讨使用Java语言生成指定范围内的随机数。
2. 生成指定范围的随机数
2.1 使用Math.random()
Math.random()
生成一个范围在0到1之间的double类型的随机数,且该值大于等于0.0,小于1。
示例编码如下:
public int getRandomNumber(int min, int max) {
return (int) ((Math.random() * (max - min)) + min);
}
当Math.random()返回0.0时,这个函数的返回值是最小值:
0.0*(max-min)+min=min
当Math.random()返回1时(实际达不到),那么这个函数的返回值的上限是:
1*(max-min)/-min=max
2.2 使用java.util.Random.nextInt()
使用java.util.Random的实例,也可以用来做同样的事情,相关代码如下:
public int getRandomNumberUsingNextInt(int min, int max) {
Random random = new Random();
return random.nextInt(max - min) + min;
}
该函数生成的数同样是包括最小值,不包括最大值。
2.3 使用java.util.Random.ints()
java.util.Random.ints方法返回一个随机整数的Stream。
public int getRandomNumberUsingInts(int min, int max) {
Random random = new Random();
return random.ints(min, max)
.findFirst()
.getAsInt();
}
该函数生成的数同样是包括最小值,不包括最大值。
总结
在本文中,我们了解了在给定范围内生成随机数的几种方法。相关代码可以在github中看到:https://github.com/eugenp/tutorials/tree/master/java-numbers-2