【发布时间】:2016-08-27 00:00:52
【问题描述】:
在 Java 中创建随机数生成器 - 查看 num1 和 num2,在哪些情况下我会使用这两种方法中的任何一种来创建 1 到 8 之间的随机数?一个比另一个更有效率,还有其他好处吗?
import java.util.*;
public class Chpt3 {
public static void main(String[] args) {
Random rand = new Random();
int num1 = Math.abs(rand.nextInt()) % 8 + 1;
int num2 = rand.nextInt(8) + 1;
System.out.println(num1);
System.out.println(num2);
}
}
【问题讨论】:
-
因为你想要一个在 [1, 9] 范围内的整数,你应该使用 rand.nextInt 因为它更好地描述了你的意图。除非您另有了解,否则更具体功能的内部实现往往比从现有功能中组合它们更好。也就是说,Java 是一种编译语言,它利用静态分析通过将 Math.abs(Math.random) 和 random.nextInt 这两种模式规范化为几乎相同的表达式来使大部分决策变得无关紧要。