[Java] Arrays.copyOfRange - 배열 복사

장찬익·2023년 10월 19일

JAVA 학습 일지

목록 보기
27/28
  • copyOf
package aArrays;

import java.util.Arrays;

public class copyMain {

	public static void main(String[] args) {
		
		int [] arr1 = {1, 2, 3, 4, 5};
		int [] arr2 = Arrays.copyOf(arr1, arr1.length);
		//복사하고자하는 오리지널 배열 넣고, 복사하고자하는 총범위를 뒤에 넣어줌
		for(int i =0; i < arr2.length; i++) {
			System.out.print(arr2[i] + " ");
		    }
        	
    }
}
/*
Console : 1, 2, 3, 4, 5
*/

복사할 배열은 arr1이며, 1~5 의 정수 값을 넣어 주었다. 복사한 데이터를 받을 배열은 arr2로써 초기 배열의 크기를 지정할 필요 없이 바로 Arrays.copyOf를 이용해서 arr1 배열의 데이터를 손쉽게 복사할 수 있다.

매개변수로는 [ Arrays.copyOf( 복사할 배열, 복사할 배열의 크기); ]처럼 넣어주면 된다. 이후 출력해 보면 arr1과 똑같은 데이터가 정상적으로 들어간 것을 확인할 수 있다.

  • copyOfRange
package aArrays;

import java.util.Arrays;

public class copyMain {

	public static void main(String[] args) {
		
		int [] arr1 = {1, 2, 3, 4, 5};
		System.out.println();
		int [] arr3 = Arrays.copyOfRange(arr1, 0, 3);
		//특정범위를 지정해서 해당부분만 복사할 수 있다.
		for(int i =0; i < arr3.length; i++) {
			System.out.print(arr3[i] + " ");
		}		
	}
}
// Console : 1, 2, 3

이번에는 arr1에서 1, 2, 3 만 복사하고자 하여, Arrays.copyOfRange 를 통한 복사를 진행하였다. 원리는 기존에 Arrays.copyOf 와 크게 다르지 않다.

매개변수로는 [ Arrays.copyOfRange(복사하고자하는 배열, 시작 위치, 배열크기); ]로 선언해주면 되며, 주의할 점은 복사되는 배열은 시작 위치부터 배열크기 바로 전까지 복사된다는 점이다. 위의 코드처럼 배열을 복사해주면 실제 복사되는 배열 arr3 에는 정수 1, 2, 3 이 복사된다. 즉 arr1의 0 ~ 2 인덱스의 값이 저장된다. 출력하게 되면 아래와 같이 1, 2, 3 정수가 정상적으로 복사된 것을 확인할 수 있다.

profile
장찬익 입니다

0개의 댓글