배열을 복사하는 방법은 두가지가 있다.
첫번째 방법은 익숙한 방법이므로 생략하고 이번에는 System.arraycopy메서드에 대해 알아보겠다.
System.arraycopy(src,srcPos,dest,destPos,length)
src
: 복사할 배열 이름
srcPos
: 복사할 배열의 첫번째 위치
dest
: 복사해서 붙여넣을 대상 배열 이름
destPos
: 붙여넣기를 시작할 첫 번째 위치
length
: src에서 dest로 자료를 복사할 요소의 갯수
예제로 아래의 bookArray1
객체 배열을 bookArray2
로 복사해보겠다.
Book [] bookArray1 = new Book[3];
Book [] bookArray2 = new Book[3];
bookArray1[0]= new Book("태백산맥","조정래");
bookArray1[1]= new Book("데미안","헤르만 헤세");
bookArray1[2]= new Book("어떻게 살 것인가","유시민");
System.arraycopy(bookArray1,0,bookArray2,0,3);
for (int i=0;i<bookArray2.length;i++) {
bookArray2[i].showBookInfo();
}
/* 출력결과
태백산맥, 조정래
데미안, 헤르만 헤세
어떻게 살 것인가, 유시민
*/
for문을 이용하는 것보다 쉽게 복사가 완료되었다