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

在JAVA中创建随机整数数组,给出长度和值的范围,java,arrays,random,integer,Java,Arrays,Random,Integer,我试图编写一个Java代码,其中给定int数组的长度和最小值和最大值,它返回一个随机数组值 我试图用最简单的方式编程,但我仍然不知道编程过程是如何工作的 我尝试了以下几点: import java.util.Random; 公共类随机数组{ 公共静态void main(字符串[]args){ System.out.println(createRandom(10)); } 公共静态int[]createRandom(int n){ 随机rd=新随机(); int[]数组=新的int[n]; in

我试图编写一个Java代码,其中给定int数组的长度和最小值和最大值,它返回一个随机数组值

我试图用最简单的方式编程,但我仍然不知道编程过程是如何工作的

我尝试了以下几点:

import java.util.Random;
公共类随机数组{
公共静态void main(字符串[]args){
System.out.println(createRandom(10));
}
公共静态int[]createRandom(int n){
随机rd=新随机();
int[]数组=新的int[n];
int min=5;
int max=99;
for(int i=0;imin);
while(数组[i]}
尝试使用
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();
}
publicstaticvoidmain(字符串[]args){
int[]arr=createRandom(10);
对于(int i=0;ir.nextInt(最大-最小)+min)
.限制(n)
.toArray();
}

尝试使用
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();
}
publicstaticvoidmain(字符串[]args){
int[]arr=createRandom(10);
对于(int i=0;ir.nextInt(最大-最小)+min)
.限制(n)
.toArray();
}

我们必须调整的第一件事是随机数的生成。您似乎指定了一个
min
max
,因此必须根据这些边界生成一个数字。我们可以使用将范围设置为
max-min
。但是,此范围将从0开始,因此我们必须添加您的
min
值以完成绑定。使用此过程将消除对现有
while
循环的需要

现在,
数组中的每个值都将作为

array[i] = rd.nextInt(max - min) + min
尝试打印数组元素时,带有数组变量名的System.out.println()语句将打印数组的内存地址这不会打印整个值数组。

我们必须迭代元素来打印它们。最好使用for循环来实现这一点,但是您的程序可以生成任意大小的数组。因此,我们应该使用for each循环,如下所示:

for (int num : createRandom(10)) { 
   System.out.println(num); 
}
这表示“对于createRandom(10)返回的
数组中的每个int,请将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;
   }
}
import java.util.Random;
公共类随机数组{
公共静态void main(字符串[]args){
对于(int num:createRandom(10)){
系统输出打印项数(num);
}
}
公共静态int[]createRandom(int n){
随机rd=新随机();
int[]数组=新的int[n];
int min=5;
int max=99;
for(int i=0;i
我们必须调整的第一件事是随机数的生成。您似乎指定了一个
min
max
,因此必须根据这些边界生成一个数字。我们可以使用将范围设置为
max-min
。但是,此范围将从0开始,因此我们必须添加您的
min
值以完成绑定。使用此过程将消除对现有
while
循环的需要

现在,
数组中的每个值都将作为

array[i] = rd.nextInt(max - min) + min
尝试打印数组元素时,带有数组变量名的System.out.println()语句将打印数组的内存地址这不会打印整个值数组。

我们必须迭代元素来打印它们。最好使用for循环来实现这一点,但是您的程序可以生成任意大小的数组。因此,我们应该使用for each循环,如下所示:

for (int num : createRandom(10)) { 
   System.out.println(num); 
}
这表示“对于createRandom(10)返回的
数组中的每个int,请将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;
   }
}
import java.util.Random;
公共类随机数组{
公共静态void main(字符串[]args){
对于(int num:createRandom(10)){
系统输出打印项数(num);
}
}
公共静态int[]createRandom(int n){
随机rd=新随机();
int[]数组=新的int[n];
int min=5;
int max=99;
for(int i=0;i
您提供的代码有什么问题吗?它不会返回一个随机数组,其长度与我介绍的给定的最小值和最大值相同。它执行什么操作而不是预期的行为?代码运行时间太长。我不知道你提供的代码有什么问题?它不会返回一个随机数组,长度与我介绍的给定的最小值和最大值相同。它做什么而不是预期的行为?代码运行时间太长。我不知道为什么这么感谢你的帮助!关于您的代码,我有一个问题:这个位是什么意思:array[I]=rd.nextInt(max-min+1)+min;?如果你的最小值是5,最大值是10,那么(max-min+1)+min给你11,意味着rd.nextInt(11)给你数字0≤ 编号<11。非常感谢您的帮助!我有一个关于