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面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》