Random 类的使用

在 Java 中,生成一个随机的 int 值并限定其范围在 -11 之间,可以通过 java.util.Random 类或 Math.random() 来实现。范围 -11 包含了 -101 三个整数,所以可以生成一个从 -11 的随机数。

方法 1:使用 java.util.Random

import java.util.Random;

public class RandomIntExample {
    public static void main(String[] args) {
        Random random = new Random();
        
        // 生成 -1 到 1 之间的随机整数
        int randomInt = random.nextInt(3) - 1; // 生成 0 到 2,然后减去 1
        
        System.out.println("Random number between -1 and 1: " + randomInt);
    }
}

解释:

  • random.nextInt(3) 生成的是一个 02 之间的随机数。
  • 减去 1 后,结果范围是 -11(即:-101)。

方法 2:使用 Math.random()

public class RandomIntExample {
    public static void main(String[] args) {
        // 生成 -1 到 1 之间的随机整数
        int randomInt = (int) (Math.random() * 3) - 1;  // Math.random() 返回 [0, 1) 的浮点数

        System.out.println("Random number between -1 and 1: " + randomInt);
    }
}

解释:

  • Math.random() 返回一个介于 0(含)到 1(不含)之间的 double 值。
  • Math.random() 乘以 3,结果是 0.02.999... 之间的浮点数。将其强制转换为 int,得到的值是 02
  • 减去 1,得到的值在 -11 之间。

方法 3:使用 ThreadLocalRandom(适用于多线程)

ThreadLocalRandom 是一个比 Random 更高效的类,特别适合多线程环境。

import java.util.concurrent.ThreadLocalRandom;

public class RandomIntExample {
    public static void main(String[] args) {
        // 生成 -1 到 1 之间的随机整数
        int randomInt = ThreadLocalRandom.current().nextInt(-1, 2); // 上限是开区间,结果范围为 [-1, 2)

        System.out.println("Random number between -1 and 1: " + randomInt);
    }
}

解释:

  • ThreadLocalRandom.current().nextInt(-1, 2) 生成范围为 -11 的随机整数,第二个参数是排除的上限(2)。

总结:

  • RandomMath.random() 是比较常用的方法,适合简单的随机数生成需求。
  • ThreadLocalRandom 适合多线程环境,且性能优于 Random
posted @ 2024-09-29 00:32  gongchengship  阅读(2)  评论(0编辑  收藏  举报