[关闭]
@zhuanxu 2017-12-29T15:04:08.000000Z 字数 1403 阅读 1815

在java中产生随机数

java-知识点


在java中产生随机数主要靠:java.lang.Math 和 java.util.Random 这两个类。

下面介绍java中不同场景要求下随机数产生的方法。

通过Math类产生随机数

1.产生0-1之间的数

  1. public static double getRandomNumber(){
  2. double x = Math.random();
  3. return x;
  4. }

2.产生min-max之间的数

  1. public static double getRandomDoubleBetweenRange(double min, double max){
  2. double x = (Math.random()*((max-min)+1))+min;
  3. return x;
  4. }

3.产生min-max之间的整数

  1. public static int getRandomIntegerBetweenRange(double min, double max){
  2. int x = (int)(Math.random()*((max-min)+1))+min;
  3. return x;
  4. }

通过Random类产生随机数

1.产生[0,maxInt)之间的整数,左闭右开

  1. public static int generateRandomInt(int upperRange){
  2. Random random = new Random();
  3. return random.nextInt(upperRange);
  4. }

2.产生[min,max]之间的整数

  1. public static int generateRandomIntIntRange(int min, int max) {
  2. Random r = new Random();
  3. return r.nextInt((max - min) + 1) + min;
  4. }

3.产生0-1之间的浮点数

  1. public static double generateRandomDouble(){
  2. Random random = new Random();
  3. return random.nextDouble();
  4. }
  5. public static float generateRandomFloat(){
  6. Random random = new Random();
  7. return random.nextFloat();
  8. }

java8中stream特性产生随机数

1.产生[min,max]之间的整数

  1. public static int getRandomNumberInts(int min, int max){
  2. Random random = new Random();
  3. return random.ints(min,(max+1)).findFirst().getAsInt();
  4. }

2.产生n个整数

  1. public static void getStreamOfRandomInts(int num) {
  2. Random random = new Random();
  3. random.ints(num).sorted().forEach(System.out::println);
  4. }

3.产生n个[min-max]之间的整数

  1. public static void getStreamOfRandomIntsWithRange(int num, int min, int max) {
  2. Random random = new Random();
  3. random.ints(num,min, max+1).sorted().forEach(System.out::println);
  4. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注