📜  在Java中生成随机数(1)

📅  最后修改于: 2023-12-03 15:07:54.018000             🧑  作者: Mango

在Java中生成随机数

在Java中生成随机数是常见的程序开发需求,本文将介绍Java中几种生成随机数的方法。

Math.random()

Math.random() 方法可生成一个大于等于0.0且小于1.0的double类型随机数。可以使用该方法生成指定范围内的随机数。

public class RandomTest {
    public static void main(String[] args) {
        double random = Math.random();
        System.out.println(random);  // 输出0.0 ~ 1.0之间的一个随机数
        int min = 1, max = 6;
        int randomInt = (int) (random * (max - min + 1)) + min;
        System.out.println(randomInt);  // 输出1 ~ 6之间的一个随机整数
    }
}
Random类

Java中还提供了一个Random类,该类可生成各种数据类型的随机数。相对于Math.random()Random类提供更多的功能,例如生成指定范围内的整数和生成随机字符串等。

public class RandomTest {
    public static void main(String[] args) {
        Random random = new Random();
        int randomInt = random.nextInt(6) + 1;  // 生成1 ~ 6之间的一个随机整数
        System.out.println(randomInt);
        double randomDouble = random.nextDouble();  // 生成大于等于0.0且小于1.0的随机小数
        System.out.println(randomDouble);
        boolean randomBoolean = random.nextBoolean();  // 生成true或false
        System.out.println(randomBoolean);
    }
}
ThreadLocalRandom类

Java 7新增了一个ThreadLocalRandom类,该类继承自Random类,并利用线程本地存储(Thread Local Storage)生成随机数,比Random类更快更安全。

public class RandomTest {
    public static void main(String[] args) {
        ThreadLocalRandom random = ThreadLocalRandom.current();
        int randomInt = random.nextInt(6) + 1;  // 生成1 ~ 6之间的一个随机整数
        System.out.println(randomInt);
        double randomDouble = random.nextDouble();  // 生成大于等于0.0且小于1.0的随机小数
        System.out.println(randomDouble);
        boolean randomBoolean = random.nextBoolean();  // 生成true或false
        System.out.println(randomBoolean);
    }
}

以上就是Java中生成随机数的几种方法,可以根据需求选择不同的方法进行使用。