我正在尝试创建一个方法,在该方法中将整数数组作为参数,创建一个大小相同的新数组,将元素从第一个数组复制到新数组中,然后返回一个引用到新阵列。
现在,我的代码如下:
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];
}
}
我仍然遇到错误。
答案 0 :(得分:0)
多件事。您需要将size声明为int。主要的事情:你永远不会使用传递给方法的参数,arr。当newarray还没有存在时,你使用size = newarray.length。你试图制作copyarray = new array,这没什么用。另外,当设置两个彼此相等的数组时,你并不真正复制,你只是复制对内存中数组的引用。为了复制,使用参数的长度创建一个新数组,然后使用for循环迭代它并将每个值复制到新数组中,然后返回新数组。您也可以使用Arrays.copyOf(array,array.length);