返回一个整数数组

时间:2014-04-04 01:37:23

标签: java arrays

我正在尝试创建一个方法,在该方法中将整数数组作为参数,创建一个大小相同的新数组,将元素从第一个数组复制到新数组中,然后返回一个引用到新阵列。

现在,我的代码如下:

class CopyingAnArray {

  int[] cloneArray(int[] arr) {
    size = newarray.length;
    int[] newarray = new int[size];
    int[] copyarray = newarray;
    return copyarray;
  }

  public static void main(String argv[]) {
    ArrayTester converter = new ArrayTester();
    int[] newarray = {2,5,6,7};
    System.out.println(converter.cloneArray(newarray));
  }
}

以下是我认为我在做什么的解释。我正在采用数组的大小并将其放入数组:

size = newarray.length;
int[] newarray = new int[size];

然后我将数组复制到名为copyarray的新数组中。然后,我返回copyarray

int[] newarray = new int[size];
int[] copyarray = newarray;
return copyarray;

关于我做错了什么/解决代码的任何建议或建议?

所以我尝试这样做: 所以,我会做这样的事情:

  int[] cloneArray(int[] arr) {
            int size=arr.length;
            int[] arr=new int[size];
            int[] arr=newarray;
            for (int i=0; i<arr.length; i++) {
                arr[i]=newarray[i];
                return newarray[i];
   }
   }

我仍然遇到错误。

1 个答案:

答案 0 :(得分:0)

多件事。您需要将size声明为int。主要的事情:你永远不会使用传递给方法的参数,arr。当newarray还没有存在时,你使用size = newarray.length。你试图制作copyarray = new array,这没什么用。另外,当设置两个彼此相等的数组时,你并不真正复制,你只是复制对内存中数组的引用。为了复制,使用参数的长度创建一个新数组,然后使用for循环迭代它并将每个值复制到新数组中,然后返回新数组。您也可以使用Arrays.copyOf(array,array.length);