Java

[Java] System.arraycopy( )를 이용한 배열의 복사

Gemstone 2021. 6. 29. 16:28

배열의 복사는 for문보다 System.arraycopy( )를 사용하는 것이 효율적이다.

 

기존 배열의 복사에 사용된 for문을 arraycopy( )로 바꾸면 다음과 같다.

for (int i = 0; i < num.length; i++) { newNum[i] = num[i]; }

System.arraycopy(num, 0, newNum, 0, num.length);

num[0] 에서 newNum[0]으로 num.length개의 데이터를 복사

 

즉, 배열 num의 내용을 배열 newNum으로, 배열 num의 첫 번째 요소(num[0])부터 시작해서 num.length개의 데이터를 newNum의 첫 번째 요소(newNum[0])에 복사한다. 이때 복사하려는 배열의 위치가 적절하지 못하여 복사하려는 내용보다 여유 공간이 적으면 에러(ArrayIndexOutOfBoundsException)가 발생한다.

 

 

소스코드
실행결과