数组复制,手写
手写数组复制
作为新手还是要写一些基本的方法实现的
此复制功能为Arrays.copy功能复制数组
public class CopyOf {
public static void main(String[] args) {
int[] arrays1 = {
1, 2, 3, 0, 0};
int[] arrays2 = {
2, 2, 2, 3};
//获取到第一个数组的长度
int len1 = arrays1.length;
//初始化count
int count = 0;
//循环数组一
for (int i = 0; i < arrays1.length; i++) {
//判断如果有元素不0就累加
if (arrays1[i] != 0) {
count++;
}
}
//数组一的长度减去数组一不为0 元素的个数(rest为数组一中元素为0的个数)
int rest = len1 - count;
//数组二的长度
int len2 = arrays2.length;
//判断数组一中的为0 元素的长度是否小于数组二
if (len2 > rest) {
//数组一剩余空间不够添加数组二创建新的数组
//新数组的长度为数组一中的非空数组+数组二的长度
int[] newArray = new int[count + len2];
//遍历数组一中的非空元素
for (int i = 0; i < count; i++) {
//把数组一中的非空元素赋值到新数组
newArray[i] = arrays1[i];
}
//新数组赋值给数组一
arrays1 = newArray;
}
//循环数组二,数组一从count下表开始把数组二的元素赋值给数组一
for (int i : arrays2) {
arrays1[count] = i;
count++;
}
//遍历出数组一
System.out.println(Arrays.toString(arrays1));
}
}