你能修复我的简单数组方法吗?

时间:2017-06-29 03:20:47

标签: java arrays methods

我做了一个非常简单的方法,它接受一个int数组,并复制它。因此,如果我使用数字1,2,3创建一个数组...该方法应该返回1,1,2,2,3,3。 但是,似乎有一个我无法弄清楚的问题。当我打印z [1]时,2是输出而不是1.任何帮助都会很棒。

public class random{

public static int[] duplicate(int[] a) {

int[] r = new int[a.length * 2];
for (int i = 0; i < a.length; i++) {
    r[i * 2] = a[i];
    r[i * 2 + 1] = a[i];
}
return r;
}




public static void main(String[] args) {

    int []z = new int[] {1,2,3,4};
    duplicate(z);
    System.out.print(z[1]);


}

}

3 个答案:

答案 0 :(得分:1)

您需要在返回差异函数时将数组重新分配给变量z。即。

public static void main(String[] args) {
    int []z = new int[] {1,2,3,4};
    z = duplicate(z);
    System.out.print(z[1]);
}

答案 1 :(得分:0)

您只是将数组z传递给您的方法,该方法返回一个r。 打印z [1]来自原始数组z,而不是来自r(您的方法返回的数组)。你必须从r打印,而不是从z打印。一种方法是:

 int[] r=duplicate(z);
 System.out.println(r[1]);

答案 2 :(得分:0)

调用该函数后,您忘记重新分配z数组。

     z = duplicate(z);