Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 访问方法返回数组_Java - Fatal编程技术网

Java 访问方法返回数组

Java 访问方法返回数组,java,Java,我有一个关于如何访问返回数组类型的方法的问题。这是我的代码: public static void main(String[] args) { int value = 5; for(int i=0; i<value; i++){ System.out.println((i+1)+ "=" + Arrays.toString(Arr(value))); } } private static int[] Arr(int n){ int[] x

我有一个关于如何访问返回数组类型的方法的问题。这是我的代码:

public static void main(String[] args) {
    int value = 5;
    for(int i=0; i<value; i++){
        System.out.println((i+1)+ "=" + Arrays.toString(Arr(value)));
    }
}

private static int[] Arr(int n){
    int[] x = new int[n];
    for(int i = 0; i<n; i++){
        x[i] = i+1;
    }
    return x;
}
代码结果始终打印[1,2,3,4,5]5次。
我的问题是如何访问特定的数组号,例如如何访问包含2的arr[1]或包含3的arr[2]。

该函数返回一个数组,您可以从中访问Arrvalue[index]等元素。以下是一个例子:

System.out.println((i+1)+ "=" + Arrays.toString(Arr(value)[i]));
在这种情况下,还可以使用临时阵列:

int[] temp = Arr(value);
System.out.println((i+1)+ "=" + temp[i]);
试试这个:

System.out.println((i+1)+ "=" + Arr(value)[i]);
System.out.println((i+1)+ "=" + Arr(value)[i]);
你们得到的是int数组,所以若你们有索引,那个么你们可以像上面那个样访问它。这相当于

int[] array = Arr(value);
System.out.println((i+1)+ "=" + array[i]);
有两点值得注意:

方法名称应以小写字母开头。 您正在循环中调用方法。将它带出循环并只调用一次,以加速代码执行。
您应该调用该方法一次,然后访问返回数组的元素

public static void main(String[] args) {
    int value = 5;
    int[] result = Arr(value);
    for(int i=0; i<value; i++){
        System.out.println((i+1)+ "=" + result[i]);
    }
}
试试这个:

System.out.println((i+1)+ "=" + Arr(value)[i]);
System.out.println((i+1)+ "=" + Arr(value)[i]);
很简单,我希望这会有帮助

当您将+与string=一起使用时,它已经将Int数组的元素转换为string。
如果要逐个打印每个元素

public static void main(String[] args) {
    int value = 5;
    int[] output=Arr(value);
    for(int i=0; i<value; i++){
        System.out.println((i+1)+ "=" + output[i]);
    }
}

private static int[] Arr(int n){
    int[] x = new int[n];
    for(int i = 0; i<n; i++){
        x[i] = i+1;
    }
    return x;
}

您使用错误的参数调用函数

你可以这样打电话

public static void main(String[] args) {
    int value = 5;
    for (int i = 0; i < value; i++) {
        System.out.println((i + 1) + "=" + Arrays.toString(Arr(i + 1)));
    }
}

当前,每次通过循环时都要创建一个新数组。这是非常缓慢和浪费的,尤其是如果您每次只想打印一个值

要使代码保持原样,只需打印一个值,您可以执行以下操作:

int value = 5;
for(int i=0; i<value; i++){
    System.out.println((i+1)+ "=" + Arr(value)[i]);
}
如果您想亲自了解此更改的效果,请尝试将值设置为10000000或更高,您应该注意到第一个值随着运行时间的延长而逐渐变慢


设置它并注意它的启动速度。然后去喝一杯,等你回来的时候看看它是否还跑得很快。如果返回时已完成,请将该值设置得更高。

仅因为您提供了修复该问题的代码,才进行了向上投票。不过,您应该解释一下这段代码是如何解决这个问题的。