一尘不染

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

javascript

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

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

最简单的方法是什么?


阅读 141

收藏
2022-02-23

共2个答案

一尘不染

Stream在 Java 8 中使用:

String[] both = Stream.concat(Arrays.stream(a), Arrays.stream(b))
                      .toArray(String[]::new);

或者像这样,使用flatMap

String[] both = Stream.of(a, b).flatMap(Stream::of)
                      .toArray(String[]::new);

要对泛型类型执行此操作,您必须使用反射:

@SuppressWarnings("unchecked")
T[] both = Stream.concat(Arrays.stream(a), Arrays.stream(b)).toArray(
    size -> (T[]) Array.newInstance(a.getClass().getComponentType(), size));
2022-02-23
一尘不染

我从旧的 Apache Commons Lang 库中找到了一个单行解决方案。
ArrayUtils.addAll(T[\], T...)

代码:

String[] both = ArrayUtils.addAll(first, second);
2022-02-23