1. 程式人生 > >System.arraycopy的一些使用。陣列的拼接。

System.arraycopy的一些使用。陣列的拼接。

前幾天專案中遇到一個的陣列拼接的問題。第一個陣列是長度變化的,第二個陣列是長度固定的。要把第一個陣列插入到第二個陣列中間去。首先想到的當然是用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}