全部代码如下:
{
public static void main(String[] args) {
// 复制某个数组元素数据至另外一个数组中
String[] num1 = new String[3];
num1[0] = "1";
String[] num2 = {"3", "2", "1"};
// 把num2中的元素存储到num1中
// 获得数组剩余的空间大小 默认为0
int len = num1.length;
int count = 0;// 原数组以及属于的空间
for (int i = 0; i < len; i++) {
if (num1[i] == null) {
break;
} else {
count++;
}
}
int shengyv = len - count;// 求得原数组的剩余空间
int len2 = num2.length;// 要复制元素的个数
String[] newStringArray = null;
if (shengyv < len2) {
// 原数组的空间不够使用 手动扩大一个数组的空间大小 扩容
// 简单来说:就是创建一个新的数组
newStringArray = new String[count + len2];
// 遍历原数组以及复制的数字元素 存储到newStringArray
int index = 0;
for (int j = 0; j < count; j++) {
newStringArray[index] = num1[j];
index++;
}
for (int j = 0; j < len2; j++) {
newStringArray[index] = num2[j];
index++;
}
System.out.println(Arrays.toString(newStringArray));
} else {
// 直接将复制数组内容村粗到原数组中即可
for (int j = 0; j < len2; j++) {
num1[count] = num2[j];
count++;
}
System.out.println(Arrays.toString(num1));
}
下面代码不太懂,第一个循环num1先对newStringArray进行赋值,当第二个循环运行是num2对newStringArray进行赋值,为什么num2赋的值不会覆盖num1的赋值?
{
for (int j = 0; j < count; j++) {
newStringArray[index] = num1[j];
index++;
}
for (int j = 0; j < len2; j++) {
newStringArray[index] = num2[j];
index++;
}
}
刚接触Java不太懂,