Java 返回整数数组

Java 返回整数数组,java,arrays,Java,Arrays,我试图创建一个方法,其中它将一个整数数组作为参数,创建一个大小相同的新数组,将第一个数组中的元素复制到新数组中,然后返回对新数组的引用 现在,我的代码如下: class CopyingAnArray { int[] cloneArray(int[] arr) { size = newarray.length; int[] newarray = new int[size]; int[] copyarray = newarray; return copyarra

我试图创建一个方法,其中它将一个整数数组作为参数,创建一个大小相同的新数组,将第一个数组中的元素复制到新数组中,然后返回对新数组的引用

现在,我的代码如下:

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];
   }
   }
int[]cloneArray(int[]arr){
int size=arr.length;
int[]arr=新的int[size];
int[]arr=newarray;

对于(int i=0;i多种情况。您需要将大小声明为int。主要情况是:您从未使用传递给方法的参数arr。当newarray还不存在时,您使用size=newarray.length。您尝试使copyrarray=newarray,这没有多大意义。此外,当将两个数组设置为相等时,您实际上并不需要复制时,您仅复制对内存中数组的引用。要进行复制,请使用参数的长度创建一个新数组,然后使用for循环对其进行迭代,并将每个值复制到新数组中,然后返回新数组。您也可以始终使用Arrays.copyOf(array,array.length);

Arrays.copyOf()
为您执行此操作。您如何首先使用变量
newarray
,然后在以后声明它?检查您的范围。在
cloneArray()中没有
newarray
。这是一个很大的混乱。您显然没有尝试过这一点,因为它远不可编译,即使可编译,也不会执行任何操作。您甚至一次都没有在函数中使用
arr
参数!