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)가 발생한다.