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……)

相关文章:

java - 如何产生一个随机的字母数字串作为 session 的唯一标识符

JavaScript中的falsy values

java - 使用JGit获取所有分支

java如何从文件里读取字符串

加载JNI共享库失败(JDK)

java - 如何获取多对多关系实体

javascript - 可以设置跨域,但无法获取值(value)

java - Java Web Start部署属性文件读取

java - 我可以使用MultiKeyMap映射非特定字符的键吗

Apache Camel是什么