본문 바로가기
알고리즘 & 코딩 테스트/자바 문법

[Java] 배열 복사

by heosj 2024. 1. 4.

Arrays.copyOf(원본배열, 복사할 길이)

기존 배열을 변경하지 않고 배열의 일부분을 복사하여 새 배열을 생성한다.

int[] arr = {1, 2, 3, 4, 5};
int[] copyArr = Arrays.copyOf(arr, 3); // 처음 3개 요소를 가진 새 배열 생성 -> {1,2,3}

 

System.arraycopy(원본배열, 원본 시작인덱스, 대상배열, 대상 시작인덱스, 복사할 길이)

기존 배열의 일부 또는 전체를 다른 배열로 복사한다.

int[] arr = {1, 2, 3, 4, 5};
int[] copyArr = new int[3];
System.arraycopy(arr, 0, cotyArr, 0, 3); // arr의 인덱스 0부터 3개 요소를 copyArr에 복사

 

배열.clone()

배열 객체의 clone() 메소드를 사용하여 배열을 복사한다.

int[] arr = {1, 2, 3, 4, 5};
int[] copyArr = arr.clone();

 

배열 순회 (for문 활용)

배열 요소를 직접 순회하며 배열을 복사한다.

int[] arr = {1, 2, 3, 4, 5};
int[] copyArr = new int[3];

for (int i=0; i<3; i++) {
    copyArr[i] = arr[i];
}

 

 

Arrays.copyOf() 또는 System.arraycopy()를 사용하는 것이 성능과 효율성 측면에서 좋은 선택일 수 있다.