我从笔记中看到了两个关于复制数组的例子.
下面给出的第一个例子表明它不是复制数组的方法.但是,当我尝试运行代码时,它设法将所有值从array1复制到array2.
int []array1={2,4,6,8,10};
int []array2=array1;
for(int x:array2){
System.out.println(x);
}
Run Code Online (Sandbox Code Playgroud)
给出的第二个例子是说复制数组的正确方法.
int[] firstArray = {5, 10, 15, 20, 25 };
int[] secondArray = new int[5];
for (int i = 0; i < firstArray.length; i++)
secondArray[i] = firstArray[i];
Run Code Online (Sandbox Code Playgroud)
我的问题是,这两个例子是否适合用于编码,或者实施例2是优选的.如果您是我的讲师,我将应用示例1 ..与示例2方法相比,我将获得更少的分数或者只是相同?
第一个例子不复制任何东西.它将原始数组的引用分配给新变量(array2),因此两个变量(array1和array2)都引用相同的数组对象.
第二个示例实际上创建了第二个数组,并将原始数组的内容复制到它.
还有其他更简单的方法来复制数组.您可以使用Arrays.copyOf或System.arraycopy代替通过for循环显式复制数组的元素.
int[] secondArray = Arrays.copyOf (firstArray, firstArray.length);
Run Code Online (Sandbox Code Playgroud)
要么
int[] secondArray = new int[firstArray.length];
System.arraycopy(firstArray, 0, secondArray, 0, firstArray.length);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11735 次 |
| 最近记录: |