案例四:数组复制
-
需求:
- 把一个数组中的元素复制到另一个数组中去。
-
分析:
- 先静态初始化一个原数组
- 再动态初始化一个新数组
- 最后循环遍历出原数组的元素,依次赋值给新数组,完成数组复制
-
实现:
1. 静态初始化一个原数组,元素数据随意录入
2. 动态初始化一个新数组,长度为原数组的长度
3. 定义一个复制数组的方法copyArrs,设置两个形参:int[] arr1, int[] arr2 ——>用于接收原数组和新数组
4. 在方法内,使用for循环遍历原数组,依次取出原数组元素数据,赋值给新数组
5. 调用copyArrs方法,将原数组和新数组传递给形参:int[] arr1, int[] arr2,完成数组复制
6. 定义一个打印数组的方法printArrs,设置一个形参:int[] arr ——>用于接收需要打印的数组
7. 在方法内,使用for循环遍历传入的数组
判断该元素是不是最后一个元素,是则不需要用逗号隔开,不是则需要用逗号隔开
8. 调用printArrs方法,将传入的数组打印输出到控制台
package com.app.demo;
/**
案例四:数组复制
- 需求:
- 把一个数组中的元素复制到另一个数组中去。
- 分析:
- 先静态初始化一个原数组
- 再动态初始化一个新数组
- 最后循环遍历出原数组的元素,依次赋值给新数组,完成数组复制
*/
public class Test4 {
public static void main(String[] args) {
// 1. 静态初始化一个原数组,元素数据随意录入
int[] arrs = {12, 55, 77, 88};
// 2. 动态初始化一个新数组,长度为原数组的长度
int[] newArrs = new int[arrs.length];
// 5. 调用copyArrs方法,将原数组和新数组传递给形参:int[] arr1, int[] arr2,完成数组复制
copyArrs(arrs, newArrs);
// 8. 调用printArrs方法,将传入的数组打印输出到控制台
System.out.print("原数组: ");
printArrs(arrs);
System.out.print("\n新数组: ");
printArrs(newArrs);
}
// 3. 定义一个复制数组的方法copyArrs,设置两个形参:int[] arr1, int[] arr2 ——>用于接收原数组和新数组
public static void copyArrs(int[] arr1, int[] arr2) {
// 4. 在方法内,使用for循环遍历原数组,依次取出原数组元素数据,赋值给新数组
for (int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
}
// 6. 定义一个打印数组的方法printArrs,设置一个形参:int[] arr ——>用于接收需要打印的数组
public static void printArrs(int[] arr) {
// 7. 在方法内,使用for循环遍历传入的数组
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
// 判断该元素是不是最后一个元素,是则不需要用逗号隔开,不是则需要用逗号隔开
System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");
}
System.out.print("]");
}
}
输出结果:
原数组: [12, 55, 77, 88]
新数组: [12, 55, 77, 88]
总结
1、数组的复制是什么意思?
- 需要创建一个新数组,将原数组的元素赋值给新数组
- 注意:不要直接将原数组赋值给新数组,因为这样只能得到同一个内存地址,在内存中仍然是只有一个数组,而不会复制拷贝一个新数组