Java中数组赋值方法,以及为什么不能使用a = b
//这里定义两个长度相同的数组,其中数组二为空
int[] arr1 = new int[]{1,2,3,4,5,6,0,0,0,0};
int[] arr2 = new int[arr1.length];
- 使用for循环赋值
for(int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
- 使用copy赋值
//System.arraycopy(src, srcPos, dest, destPos, length)
//src: 源数组
//srcPos: 从源数组复制数据的起始位置
//dest: 目标数组
//destPos: 复制到目标数组的起始位置
//length: 复制的长度
System.arrayCopy(arr1,0,arr2,0,arr1.length);
- 使用clone赋值
arr2 = arr1.clone();
- 使用copyof赋值
//copyOf(int[] original, int newLength)
//original是待拷贝对象,newLength表示拷贝的长度
arr2 = Arrays.copyOf(arr1,arr1.length);
小结
arr2 = arr1; 指向的都是同一个对象,arr1和arr2中任何一个发生改变,另一个也跟着发生改变。