gpt4 book ai didi

java - 如何使方法中的数组在每次调用方法时都不会改变

转载 作者:行者123 更新时间:2023-12-01 21:59:18 24 4
gpt4 key购买 nike

我制作了一个使用随机类生成数字的方法。这些数字用于填充一个数组。此方法返回填充的数组。因此,我制作了一些其他数组,它们等于返回的数组。然而,即使这些数组应该是随机的,但它们都是相同的。

我尝试打印每个调用随机数组的方式,就在它调用的地方。这给了我不同的阵列。但是,如果我将打印件移至所有调用下方,则数组都是相同的。我也认为这是一个数组问题,因为我只有数组有这个问题。

    public static int[] numberGenerator(int[] array) {
Random rand = new Random();
int min = 0;
int max = 0;
int x = 0;

for (int j = 0; j < array.length; j++) {

if (j == 0) {
min = 1;
max = 15;
}
if (j == 1) {
min = 16;
max = 30;
}
if (j == 2) {
min = 31;
max = 45;
}
x = rand.nextInt((max - min) + 1) + min;
array[j] = x;
}
return array;
}

public static void main(String[] args) {
int[] array = {' ', ' ', ' '};
int[] array1 = numberGenerator(array);
int[] array2 = numberGenerator(array);

System.out.println(array1[1]);
System.out.println(array2[1]);
}
}

我正在寻找不同的数组。

最佳答案

您正在修改传递给方法的数组。鉴于您无论如何都不使用数组的现有内容,最好只传入您想要的长度,并在方法中创建一个新数组:

public static int[] numberGenerator(int length) {
int[] array = new int[length];
// Rest of method as before
}

然后将您的 main 方法更改为:

public static void main(String[] args) {
int[] array1 = numberGenerator(3);
int[] array2 = numberGenerator(3);

System.out.println(array1[1]);
System.out.println(array2[1]);
}

关于java - 如何使方法中的数组在每次调用方法时都不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54303023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com