在java中创建随机int数组,给出长度和值的范围

n8ghc7c1  于 2021-07-06  发布在  Java
关注(0)|答案(3)|浏览(402)

我试图编写一个java代码,在该代码中,给定int数组的长度和最小值和最大值,它将返回一个随机数组值。
我正试图用最简单的方式来编程,但我仍然不知道编程过程是如何工作的。
我尝试了以下方法:

import java.util.Random;
public class RandomIntArray {
    public static void main(String[] args){

        System.out.println(createRandom(10));
    }
    public static int[] createRandom(int n) {
        Random rd = new Random();
        int[] array = new int[n];
        int min = 5;
        int max = 99;

        for (int i = 0; i < array.length; i++) {
            array[i] = rd.nextInt();
            while (array[i] > min) ;
            while (array[i] < max) ;

        }
        return array;
    }

}
cld4siwp

cld4siwp1#

public static int[] createRandom(int n) {
    Random rd = new Random();
    int[] array = new int[n];
    int min = 5;
    int max = 10;

    for (int i = 0; i < array.length; i++) {
        array[i] = rd.nextInt(max-min+1) + min;
        System.out.print(array[i] +" ");
    }
    return array;
}
public static void main(String[] args){
    createRandom(5);
}
fcwjkofz

fcwjkofz2#

尝试使用 IntStream 去实现你想要的

public static void main(String[] args) {
    int[] arr = createRandom(10);
    for (int i = 0; i < arr.length; i++) {
        System.out.println(arr[i]);
    }
}

public static int[] createRandom(int n) {
    Random r = new Random();
    int min = 5;
    int max = 99;
    return IntStream
            .generate(() -> r.nextInt(max - min) + min)
            .limit(n)
            .toArray();
}
ukxgm1gy

ukxgm1gy3#

我们首先要调整的是随机数的产生。似乎您指定了 min 以及 max ,因此必须在这些边界中生成一个数字。我们可以使用random.nextint(int-bound)方法将范围设置为 max - min . 但是,此范围将从0开始,因此必须添加 min 值使绑定完成。使用此过程将消除对现有 while 循环。更多关于这个的信息,请看这个问题。
现在,世界上的每一个价值观 array 将生成为

array[i] = rd.nextInt(max - min) + min

当试图打印数组元素时,带有数组变量名的system.out.println()语句将打印数组的内存地址。这不会打印整个值数组。
我们必须迭代元素来打印它们。最好使用for循环来实现这一点,但是您的程序可以生成任意大小的数组。因此,我们应该使用for each循环,如下所示:

for (int num : createRandom(10)) { 
   System.out.println(num); 
}

这个for-each是说“for-each int在 array 由createrandom(10)返回,引用is作为变量 num 然后打印出来。”
这是最终代码:

import java.util.Random;
public class RandomIntArray {
   public static void main(String[] args){
      for (int num : createRandom(10)) { 
         System.out.println(num); 
      }
   }
   public static int[] createRandom(int n) {
      Random rd = new Random();
      int[] array = new int[n];
      int min = 5;
      int max = 99;

      for (int i = 0; i < array.length; i++) {
         array[i] = rd.nextInt(max - min) + min;
         System.out.println(array[i]);
      }
      return array;
   }
}

相关问题