Java中数组复制的几种方式以及数组合并

java字符串数组合并,可以使用array.copy复制方法,如下代码:

1.Object.clone()

   简单直接,只能对源数组完整地复制

2.Arrays.copyOf(T[] original, int newLength)

   可以只复制源数组中部分元素,但复制的起始位置固定为0

3.Arrays.copyOfRange(T[] original, int from, int to)

   可以指定复制的起始位置

4.System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

   复杂,但可以将源数组中的部分元素复制到目标数组的指定位置(此方法最灵活,可实现上述1、2、3的功能)

package com.qiu.lin.he;

import java.text.ParseException;
import java.util.Arrays;

public class Ceshi {
public static void main(String[] args) throws ParseException {

String[] str1 = { "J", "a", "v", "a", "中" };
String[] str2 = { "如", "何", "把", "两", "个", "数", "组", "合", "并", "为",
"一", "个" };

int strLen1 = str1.length;// 保存第一个数组长度
int strLen2 = str2.length;// 保存第二个数组长度
str1 = Arrays.copyOf(str1, strLen1 + strLen2);// 扩容
System.arraycopy(str2, 0, str1, strLen1, strLen2);// 将第二个数组与第一个数组合并
System.out.println(Arrays.toString(str1));// 输出数组

}
}

运行结果如下:

1、2、3都具有一定的局限性(返回一个新的数组,无法将源数组中的元素复制到已存在的数组中),

故合并数组的操作只能通过System.arraycopy来完成。

猜你喜欢

转载自blog.csdn.net/qq_45097560/article/details/91349536