在JAVA中创建随机整数数组,给出长度和值的范围
我试图编写一个Java代码,其中给定int数组的长度和最小值和最大值,它返回一个随机数组值 我试图用最简单的方式编程,但我仍然不知道编程过程是如何工作的 我尝试了以下几点:在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
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。非常感谢您的帮助!我有一个关于