-
JAVA) copyOf() 메소드, copyOfRange() 메소드 비교Java 2020. 7. 14. 11:51
copyOf() 메소드
- copyOf() 메소드는 전달받은 배열의 특정 길이만큼을 새로운 배열로 복사하여 반환.
- copyOf() 메소드는 첫 번째 매개변수로 원본 배열을 전달받고, 두 번째 매개변수로 원본 배열에서 새로운 배열로 복사할 요소의 개수를 전달받고 원본 배열과 같은 타입의 복사된 새로운 배열을 반환.
- 이때 새로운 배열의 길이가 원본 배열보다 길면, 나머지 요소는 배열 요소의 타입에 맞게 다음과 같은 기본값으로 채워집니다.
ex)
int[] arr1 = {1, 2, 3, 4, 5};
① int[] arr2 = Arrays.copyOf(arr1, 3);
for (int i = 0; i < arr2.length; i++) {
System.out.print(arr2[i] + ",");
} // 1,2,3
② int[] arr3 = Arrays.copyOf(arr1, 10);
for (int i = 0; i < arr3.length; i++) {
System.out.print(arr3[i] + ",");
} // 1,2,3,4,5,0,0,0,0,0
copyOfRange() 메소드
- copyOfRange() 메소드는 전달받은 배열의 특정 범위에 해당하는 요소만을 새로운 배열로 복사하여 반환.
- copyOfRange() 메소드는 첫 번째 매개변수로 복사의 대상이 될 원본 배열을 전달.
- 두 번째 매개변수로는 원본 배열에서 복사할 시작 인덱스를 전달받고, 세 번째 매개변수로는 마지막으로 복사될 배열 요소의 바로 다음 인덱스를 전달받습는다.
- 즉, 세 번째 매개변수로 전달된 인덱스 바로 전까지의 배열 요소까지만 복사됩니다. 그리고 원본 배열과 같은 타입의 복사된 새로운 배열을 반환.
ex)
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOfRange(arr1, 2, 4);
for (int i = 0; i < arr2.length; i++) {
System.out.print(arr2[i] + ",");
} // 3,4
반응형'Java' 카테고리의 다른 글
Java) 비트연산자 정리 feat) 백준 1740 (2) 2021.08.31 JAVA) 문자열을 입력받았을 때 각 자릿값을 반환받는 방법 (백준 11720번) (0) 2020.09.21 JAVA) Scanner로 char 변수 입력 받는 방법 (0) 2020.08.30 JAVA) List 와 ArrayList 차이 (4) 2020.07.13