Java数组合并的几种方法(5大方法详解)

Java数组合并的几种方法(5大方法详解)-mikechen

Java数组合并经常都会使用,今天给大家详解Java数组合并的几种常见方法。

第一种:使用list数组合并

推荐使用List数组合并,代码示例如下:

public static void main(String[] args) {
       Integer[] arrs = { 2, 1, 23, 11, 223, 90 };
       Integer[] arrs2 = { 88, 99 };

       ArrayList<Integer> list = new ArrayList(Arrays.asList(arrs));
       list.addAll(Arrays.asList(arrs2));

       list.forEach(System.out::println);
}

 

第二种:新建数组直接复制

以字符串数组为例,代码示例如下:

String[] aa = {"11","22","33"};
String[] bb = {"44","55","66"};
String[] cc = {"77","88","99"};

// 合并两个数组
String[] dd = new String[aa.length + bb.length];
System.arraycopy(aa, 0, dd, 0, aa.length);
System.arraycopy(bb, 0, dd, aa.length, bb.length);

 

第三种:循环遍历合并

// 创建合并数组
        Integer[] totalArray = new Integer[array01.length + array02.length];
        // 将array01中的元素填充至合并数组
        for (int i = 0; i < array01.length; i++) {
            totalArray[i] = array01[i];
        }
        // 将数组2中的元素填充至合并数组
        for (int i = 0; i < array02.length; i++) {
            // array01.length + i延伸下标,扩容合并数组
            totalArray[array01.length + i] = array02[i];
        }
        // 遍历合并数组
        for (int i = 0; i < totalArray.length; i++) {
            System.out.print(totalArray[i] + "    ");
        }

 

第四种:apache-commons数组合并

这是最简单的办法,在apache-commons中,有一个ArrayUtils.addAll(Object[], Object[])方法,可以让我们一行搞定,代码示例如下:

// 合并两个数组
String[] ff = ArrayUtils.addAll(aa, bb);

// 将多个字符串合并到数组构成新数组
String[] gg = ArrayUtils.addAll(aa, "12", "13");
String[] hh = ArrayUtils.addAll(aa, "12", "13", "14");
String[] ii = ArrayUtils.addAll(aa, "12", "13", "14", "15");

// 合并三个数组
String[] jj =  ArrayUtils.addAll(aa, bb);
String[] kk =  ArrayUtils.addAll(jj, cc);

通过阅读其源码,我们可以发现,其实addAll()方法本质上还是调用System.arraycopy()方法。

 

第五种:使用ObjectArrays.concat实现

String[] both = ObjectArrays.concat(first, second, String.class);

 

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法