copyOf, copyOfRange
Java에서는 배열을 복사하는 방법은 여러 방법이 존재합니다.
for문이나 while문 같이 반복문을 활용하여 직접 값을 하나씩 넣어주는 방법이 있습니다.
또한, Arrays 메서드를 활용하는 방법도 있는데 이에 관해서 알아보겠습니다.
copyOf()
copyOf( ) 메서드는 Arrays.copyOf(복사할 배열, 복사할 배열의 크기) 로 사용하면 됩니다.
아래 코드를 예시로 확인해보겠습니다.
import java.util.Arrays;
public class solution {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3};
int[] arr2 = Arrays.copyOf(arr1, arr1.length);
for(int i = 0; i < arr2.length; i++){
System.out.print(arr2[i] + " "); //{1, 2, 3}
}
}
}
arr2 를 선언할 때 copyOf를 사용한 예시를 보면
copyOf의 첫 번째 인자에는 복사할 배열인 arr1 , 두 번째 인자에는 복사할 배열의 크기인 arr1.length 를 넣었습니다.
이후 반환값을 확인하면 arr1의 값과 동일하게 arr2 값이 반환됩니다.
copyOfRange()
copyOfRange( ) 메서드는 Arrays.copyOfRange(복사할 배열, 복사할 배열의 시작점, 복사할 배열의 끝점) 로 사용하면 됩니다.
즉, 복사하고자 하는 배열의 범위를 지정하는 것을 확인할 수 있습니다.
아래의 예시를 보고 확인해보겠습니다.
import java.util.Arrays;
public class solution {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 6, 9};
int[] arr2 = Arrays.copyOfRange(arr1, arr1[0], arr[3]);
for(int i = 0; i < arr2.length; i++){
System.out.print(arr2[i] + " "); //{1, 2, 3}
}
}
}
위의 예시로 확인하면 복사한 배열은 arr1 이 되고,
시작 인덱스는 arr1[0]인 첫번째 인덱스가 됩니다.
마지막 인덱스는 arr[3]인 4번째 인덱스가 됩니다.
하지만 여기서 주의할 점은 copyOfRange에서 복사되는 배열의
마지막 인덱스 값은 마지막 인덱스 - 1 이 된다는 점입니다.
이로써 결과 값은 {1, 2, 3} 이 반환됩니다.
본 포스트는 작성자가 공부한 내용을 바탕으로 작성한 글입니다.
잘못된 내용이 있을 시 언제든 댓글로 피드백 부탁드리겠습니다.
항상 정확한 내용을 포스팅하도록 노력하겠습니다.
'Java' 카테고리의 다른 글
[Java] List -> Map 으로 변환하는 이유 (0) | 2024.04.05 |
---|---|
[Java] Integer Arraylist -> int[] 배열로 변환하는 방법 (0) | 2023.08.24 |
[Java] 집합의 특징과 종류 (0) | 2023.08.22 |
댓글