2015年7月8日 星期三

Java:陣列的複製方法

Java有一個System.arraycopy,可以針對陣列進行複製

System.arraycopy(src, srcPos, dest, destPos, length)
src:來源陣列
dest:目標陣列
srcPos:來源陣列的開始位置
destPos:目標陣列的開始位置
length:要複製的陣列長度

1
2
3
4
5
6
7
8
        int[] array={1,2,3,4,5};
        System.arraycopy(array, 2, array, 1, 2);
        //將array第2,3個位置的值(3,4)複製到array第1,2位置
        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);
        System.out.println(array[3]);
        System.out.println(array[4]);
原本的array陣列為{1,2,3,4,5},複製後便為{1,3,4,4,5}


Java 1.6版後,Arrays類別中也有陣列複製的method
Arrays.copyOf(src, length)


1
2
3
int array1[] = {1,2,3,4,5};
int array2[];
array2 = Arrays.copyOf(array1, array1.length-1);
此時array2的陣列為{1,2,3,4}


1
2
3
int array1[] = {1,2,3,4,5};
int array2[];
array2 = Arrays.copyOf(array1, 7);
此時array2的陣列為{1,2,3,4,5,0,0}

參考資料
http://www.inote.tw/java-array-copy

沒有留言:

張貼留言