java 如何便捷地将两个数组合到一起

标签 IT工具网 java

一行代码搞定

Apache Commons Lang library ArrayUtils.addAll(T[], T...)就是专门干这事的

代码:

String[] both = ArrayUtils.addAll(first, second);

不借助依赖包

非泛型

把下面的Foo替换成你自己的类名

public Foo[] concat(Foo[] a, Foo[] b) {
   int aLen = a.length;
   int bLen = b.length;
   Foo[] c= new Foo[aLen+bLen];
   System.arraycopy(a, 0, c, 0, aLen);
   System.arraycopy(b, 0, c, aLen, bLen);
   return c;
}

泛型

public <T> T[] concatenate (T[] a, T[] b) {
    int aLen = a.length;
    int bLen = b.length;

    @SuppressWarnings("unchecked")
    T[] c = (T[]) Array.newInstance(a.getClass().getComponentType(), aLen+bLen);
    System.arraycopy(a, 0, c, 0, aLen);
    System.arraycopy(b, 0, c, aLen, bLen);

    return c;
}

注意,泛型的方案不适用于基本数据类型(int,boolean……)

相关文章:

XCode解决 can't locate file for .a文件异常

java - java中默认是静态内部类的成员

java - Java Graphics 2D 中的背景颜色始终为黑色

Git如何更新密码,fatal: Authentication failed for

json数据中可以写注释吗?

iOS中的崩溃类型

Java将数组转换为List

java - 安全和认证协议(protocol)

java - 使用扫描仪生成阵列

java - 如何使用 SQL 查询转义用户提供的参数?