System.arraycopy的一些使用。陣列的拼接。
阿新 • • 發佈:2019-02-13
前幾天專案中遇到一個的陣列拼接的問題。第一個陣列是長度變化的,第二個陣列是長度固定的。要把第一個陣列插入到第二個陣列中間去。首先想到的當然是用for迴圈之類的。可惜本人是學渣小白,對於for迴圈這種邏輯性的東西一看到就頭大。於是就沒辦法只好各種百度檢視有沒有簡單的方法。然後就找到了System.arraycopy這個東西。System.arraycopy的具體解釋可以看這裡。然後還是貼程式碼吧。我這裡是把第一個陣列插入到第二個陣列第六位後面。
ps我省略了for迴圈輸出組合後具體的值。
byte[] a={1,2,3,4,5,6}//長度不固定 byte[] b={a,b,c,d,e,f,g,h}//固定 byte[] concat = concat(b, a); system.out.println("concat="+concat); public static <T> byte[] concat(byte[] first, byte[] second) { byte[] c= new byte[first.length+second.length]; System.arraycopy(first, 0, c, 0, first.length);// abcdefgh000000 System.arraycopy(second, 0, c, 6, second.length);//abcdef12345600 System.arraycopy(first, 6,c, 6+second.length, 2);//{a,b,c,d,e,f,1,2,3,4,5,6,g,h} return c; } 列印輸出concat={a,b,c,d,e,f,1,2,3,4,5,6,g,h}