package 复习题;
import java.util.Arrays;
public class 复习题九 {
/**
* 数组复制的的几种方法
*/
public static void main(String[] args) {
//声明一个数组
int arr[] = { 2113, 234, 4, 5, 1, 3, 1 };
//动态复制
int arr1[] = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
arr1[i] = arr[i];
}
//输出arr1
printArray(arr1);
//调用Arrays.copyOf();
int arr3[] = Arrays.copyOf(arr, arr.length);
printArray(arr3);
//调用System.arraycopy();
int arr4[] = new int[arr.length];
System.arraycopy(arr, 0, arr4, 0, arr.length);
printArray(arr4);
}
static void printArray(int arr[]) { // 输出数组的方法
System.out.print("{"); // 首次打印左边中括号
for (int i = 0; i < arr.length; i++) { // 遍历数组的角标
if (i != arr.length - 1) { // 如果角标不是最后一位角标,就打印元素和逗号
System.out.print(arr[i] + ", ");
} else { // 否则(角标是最后一位角标),就打印元素并继续打印右边中括号
System.out.print(arr[i] + "}");
}
// 把上面的if .. else语句可以改写成下面的三元运算符形式
// System.out.print(i==arr.length-1?arr[i]+"}":arr[i]+",");
}
}
}