본문 바로가기
프로그래밍 언어/JAVA

JAVA - 배열 복사하기

by DGDD(Developer) 2024. 3. 15.

Java로 코딩을 하다보면 가지고 있는 데이터의 안전을 위해 새로운 변수에 복사하거나 더 많은 데이터를 넣기 위해 더 크기가 큰 배열에 기존 데이터를 넣어줘야 하는 경우가 생긴다. 이럴 때 사용할 수 있는 방법을 알아보자.

 

1. = 이용하기

첫 번째 방법은 아주 간단하게 '='을 이용하는 방법이다. 단순하면서도 가장 많이 사용하는 방법이다. a 라는 배열을 같은 크기를 가진 b 라는 배열에 옮길 때 주로 사용한다. 하지만 a의 길이가 3일 때 b는 5라는 길이를 가진 배열이여도 b = a를 진행하면 b의 길이가 a와 같아지기 때문에 b를 5의 길이를 가진 배열로 유지하면서 a의 데이터를 넣고자 한거라면 적합하지 않다.

public class sample {
	  public static void main(String args[]) {
      	int[] a = {3,4,5,6};
		int[] b = new int[10];
        
          System.out.println("b의 길이는 : " + b.length);
      }
}
출력 : b의 길이는 : 4

 

2. System.arraycopy()

java.System에서 제공하는 arraycopy()는 b의 길이를 유지하면서 a의 데이터를 복사할 수 있다. 예를 들어 길이가 4인 a를 길이가 10인 c에 옮겨 보겠다.

 

public class sample {
	  public static void main(String args[]) {
      	  int[] a = {3,4,5,6};
          int[] c = new int[10];
              
          System.arraycopy(a, 0, c, 0, a.length);
	   
		  System.out.println("c의 길이는 : " + c.length);
              
      }
}
출력 : c의 길이는 : 10

 

System.arraycopy()를 사용하면 위 예시 처럼 c의 길이를 유지한체 a의 데이터를 복사할 수 있다.