一、實例代碼
package cc.ash; import org.apache.commons.lang3.ArrayUtils; import java.lang.reflect.Array; import java.util.Arrays; public class ArrayConcat { public static void main(String[] args) { int[] a = {1,2,3}; int[] b = {4,5,6}; concatArray(a,b); } public static void concatArray(int [] a, int [] b) { //org.apache.commons.lang3.ArrayUtils中方法 int[] all = ArrayUtils.addAll(a, b); //通過Array的newInstance生成一個合並長度的數組,再通過System中的arraycopy()方法copy Object newInstance = Array.newInstance(int.class, a.length + b.length); System.arraycopy(a, 0, newInstance, 0, a.length); System.arraycopy(b, 0, newInstance, a.length, b.length); //通過Arrays中copyOf方法將某一個作為基礎,擴展所需要的長度 int[] copyOf = Arrays.copyOf(b, a.length + b.length); //再通過System中的arraycopy()方法copy System.arraycopy(a, 0, copyOf, b.length, a.length); } }
二、方法總結
參考鏈接:
https://www.cnblogs.com/jpfss/p/9181443.html
https://www.jb51.net/article/160480.htm
三、stream合並數組
String [] a = {"a1", "a2"}; String [] b = {"b1", "b2", "b3"}; String[] strings = Stream.concat(Stream.of(a), Stream.of(b)).peek(System.out::println).toArray(String[]::new); //測試輸出