我需要String在 Java 中连接两个数组。
String
void f(String[] first, String[] second) { String[] both = ??? }
最简单的方法是什么?
Stream在 Java 8 中使用:
Stream
String[] both = Stream.concat(Arrays.stream(a), Arrays.stream(b)) .toArray(String[]::new);
或者像这样,使用flatMap:
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));
我从旧的 Apache Commons Lang 库中找到了一个单行解决方案。 ArrayUtils.addAll(T[\], T...)
ArrayUtils.addAll(T[\], T...)
代码:
String[] both = ArrayUtils.addAll(first, second);