Java/JAVA 100 문제 풀이

자바 part.2 문제풀이 - 배열복사

진이최고다 2023. 6. 22. 22:06

배열을 복사하는 메서드

자바에서 배열을 복사하는 메서드는 `System.arraycopy()` 와 함께 `Arrays.copy()` 두 가지가 있다. 둘다 배열의 요소를 다른 배열로 복사하는 기증을 제공하지만, 약간의 차이가 있다.

 

System.arraycopuy()

  • System.arraycopy() 메서드는 'System' 클래스에 속한 정적 메서드로 배열의 요소를 다른 배열로 복사하는 기능을 제공한다.
  • 사용법은 다음과 같다.
System.arraycopy(원본배열, 원본배열시작인덱스, 대상배열, 대상배열시작인덱스, 복사할길이);
  • `원본배열` : 복사할 원본 배열
  • `원본배열시작인덱스` : 복사를 시작할 원본 배열의 인덱스
  • `대상배열` : 복사된 결과를 저장할 대상 배열
  • `대상배열시작인덱스` : 복사를 시작할 대상 배열의 인덱스
  • `복사할길이` : 복사할 요소의 개수
예를 들어, 다음은 'System.arraycopy()'를 사용하여 배열을 복사하는 예제코드 이다.
int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[5];

System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);
  • 위 예제에서 `sourceArray`의 모든 요소를 `targetArray`로 복사한다. `sourceArray.length`를 사용하여 복사할 요소의 개수를 지정한다.

Arrays.copyOf()

  • `Arrays.copyOf()` 메서드는 `java.util.Arrays` 클래스에 속한 정적 메서드로, 배열의 요소를 다른 배열로 복사하는 기능을 제공한다.
  • 사용법은 다음과 같다.
Arrays.copyOf(원본배열, 복사할길이);
  • `원본 배열` : 복사할 원본 배열
  • `복사할길이` : 복사할 요소의 개수
예를 들어, 다음은 `Arrays.copyOf()`를 사용하여 배열을 복사하는 예제코드이다.
int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = Arrays.copyOf(sourceArray, sourceArray.length);
  • 위 예제에서 `sourceArray`의 모든 요소를 `targetArray`로 복사한다. `sourceArray.length`를 사용하여 복사할 요소의 개수를 지정한다.

 

두 메서드 모두 배열을 복사하는 기능을 제공하지만,
'System.arraycopy()'는 원본 배열과 대상 배열의 길이가 다를 경우 일부 요소만 복사할 수 있는 유연성을 제공한다. 
'Arrays.copyOf()'는 원본 배열의 길이를 복사할 길이로 지정하여 동작한다.

 

 

 

 

인프런 - 예제로 공부하는 java 100 문제풀이.part.2