본문 바로가기
개발언어/JAVA

[JAVA] 배열복사 방법 Arrays.copyOfRange/ 사용방법과 예제

by 코딩 시그널 2021. 1. 5.
반응형

오늘은 자바에서 배열 복사를 쉽게 할 수 있는 copyOfRange에 대해 정리해 보겠습니다. 

copyOfRange

- 전달받은 배열의 지정된 범위에 해당하는 요소만을 새로운 배열로 복사하여 반환

 

구문

public static int [] copyOfRange (int [] original_array, int from_index, int to_index)

 

매개 변수

  • original_array - 복사할 원본 배열 (arr)
  • from_index - 원본 배열에서 복사할 범위의 시작 인덱스
  • to_index - 원본 배열에서 복사할 범위의 끝 인덱스

 

반환 값

이 메서드는 원래 배열에서 지정된 범위를 포함하는 새 배열을 반환하며 필요한 길이를 얻기 위해 잘리거나 0으로 채워집니다.

 

예외

  • ArrayIndexOutOfBoundsException : 초기 인덱스 즉 (from_index)가 원래 배열의 범위를 벗어난 경우 발생합니다.
  • IllegalArgumentException : form_index > to_index 인 경우 throw 됩니다.
  • NullPointerException : 원래 배열이 null 인 경우 throw 됩니다.

 

사용 방법

copyOfRange (boolean [] 원본, int from, int to)
copyOfRange (byte [] 원본, int from, int to)
copyOfRange (char [] 원본, int from, int to)
copyOfRange (double [] 원본, int from, int to)
copyOfRange (float [] 원본, int from, int to)
copyOfRange (int [] 원본, int from, int to)
copyOfRange (long [] 원본, int from, int to)
copyOfRange (short [] 원본, int from, int to)
copyOfRange (T [] 원본, int from, int to)
copyOfRange (U [] 원본, int from, int to, Class newType)

예제

int[] arrOrigin = { 0,1,2,3,4,5 };
int[] arrCopy = Arrays.copyOfRange(arrOrigin, 2, 5);
for (int i = 0; i < arrCopy.length; i++) {
	System.out.print(arrCopy[i] + " ");
}
//결과 : 2 3 4

 

다음 링크는 copyOfRange 라이브러리를 이용안 알고리즘 풀이입니다.

 

[알고리즘] 프로그래머스 - k번째 수 [정렬]

문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까..

junghn.tistory.com

 

 

댓글