上QQ阅读APP看书,第一时间看更新
3.6 java.util.Random类
很明显,Random类用于产生随机数。不过,在讨论Random类之前,先了解一下Math.random()方法。
Math.random()方法会返回一个大于等于0.0但小于1.0的随机数(double)。如果要求其他类型的随机数,就需要进一步计算,例如,需要0~9之间的一个随机整数,可以使用如下代码。
public static void main(String[] args) { int rnd = (int)(Math.random() * 10); System.out.println(rnd); }
使用Random类会让代码更加清晰,下面的代码同样获取0~9之间的一个随机数。
public static void main(String[] args) { Random rand = new Random(); int rnd = rand.nextInt(10); System.out.println(rnd); }
代码中,必须创建Random类的实例才能来创建随机数,其中使用了nextInt()方法的一个重载版本,其参数为一个整数。该方法会返回一个int类型的随机数,其值大于等于0,且小于参数。
如果需要创建指定范围的随机数,可以使用如下代码。
public static void main(String[] args) { Random rand = new Random(); int min = 5, max = 10; int rnd = rand.nextInt(max - min + 1) + min; System.out.println(rnd); }
代码会生成一个大于等于5而且小于等于10的随机数。
此外,Random类还定义了一系列如下的nextXXX()方法,用于返回各种类型的随机数。
□ nextBoolean()方法,返回随机的boolean类型数据。
□ nextInt()方法,返回随机的int类型数据。
□ nextLong()方法,返回随机的long类型数据。
□ nextFloat()方法,返回随机的float类型数据。
□ nextDouble()方法,返回随机的double类型数据。
实际应用中,如果代码中需要大量的随机数,可以定义一个全局的Random对象,然后调用相应的方法生成所需的随机数。