Java 中的类Math有一个方法,Math.random()它返回 0 到 1 之间的伪随机数。
还有一个类java.util.Random有各种方法,如nextInt()、nextFloat()、nextDouble()等nextLong()。
我的问题是,如果我想获得一个范围内的随机数(比如 30-70),那么我应该走哪条路?考虑的因素是速度和随机性。
如果您查看 的实现Math.random(),您会发现它使用了该类的实例Random:
public static double random() {
return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
}
private static final class RandomNumberGeneratorHolder {
static final Random randomNumberGenerator = new Random();
}
Run Code Online (Sandbox Code Playgroud)
因此随机性是相同的。
也就是说,由于您需要 anint而不是 a double,所以您最好使用nextInt该类的方法,因为它可以节省您将aRandom转换为乘法和转换的操作。doubleint
Random rnd = new Random();
int num = rnd.nextInt(41)+30;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11467 次 |
| 最近记录: |