Java与Android移动应用开发:技术、方法与实践
上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对象,然后调用相应的方法生成所需的随机数。