猿问

如何在Java中连接两个数组?

如何在Java中连接两个数组?

我需要连接两个String数组在Java中。

void f(String[] first, String[] second) {
    String[] both = ???}

做这件事最简单的方法是什么?


狐的传说
浏览 1984回答 3
3回答

12345678_0001

我从好的老ApacheCommonslang库中找到了一个单行解决方案。ArrayUtils.addAll(T[], T...)代码:String[] both = ArrayUtils.addAll(first, second);

蓝山帝景

可以编写一个完全通用的版本,甚至可以扩展到连接任意数量的数组。此版本需要Java 6,因为它们使用Arrays.copyOf()这两个版本都避免创建任何中介。List对象和用途System.arraycopy()以确保复制大型数组的速度尽可能快。对于两个数组,如下所示:public&nbsp;static&nbsp;<T>&nbsp;T[]&nbsp;concat(T[]&nbsp;first,&nbsp;T[]&nbsp;second)&nbsp;{ &nbsp;&nbsp;T[]&nbsp;result&nbsp;=&nbsp;Arrays.copyOf(first,&nbsp;first.length&nbsp;+&nbsp;second.length); &nbsp;&nbsp;System.arraycopy(second,&nbsp;0,&nbsp;result,&nbsp;first.length,&nbsp;second.length); &nbsp;&nbsp;return&nbsp;result;}对于任意数目的数组(>=1),如下所示:public&nbsp;static&nbsp;<T>&nbsp;T[]&nbsp;concatAll(T[]&nbsp;first,&nbsp;T[]...&nbsp;rest)&nbsp;{ &nbsp;&nbsp;int&nbsp;totalLength&nbsp;=&nbsp;first.length; &nbsp;&nbsp;for&nbsp;(T[]&nbsp;array&nbsp;:&nbsp;rest)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;totalLength&nbsp;+=&nbsp;array.length; &nbsp;&nbsp;} &nbsp;&nbsp;T[]&nbsp;result&nbsp;=&nbsp;Arrays.copyOf(first,&nbsp;totalLength); &nbsp;&nbsp;int&nbsp;offset&nbsp;=&nbsp;first.length; &nbsp;&nbsp;for&nbsp;(T[]&nbsp;array&nbsp;:&nbsp;rest)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;System.arraycopy(array,&nbsp;0,&nbsp;result,&nbsp;offset,&nbsp;array.length); &nbsp;&nbsp;&nbsp;&nbsp;offset&nbsp;+=&nbsp;array.length; &nbsp;&nbsp;} &nbsp;&nbsp;return&nbsp;result;}
随时随地看视频慕课网APP

相关分类

Java
我要回答