Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

5.9 배열 복사 - for, System.arraycopy() 본문

이것이 자바다/05 참조 타입

5.9 배열 복사 - for, System.arraycopy()

빌드이너프 2024. 4. 1. 07:33

배열은 한 번 생성하면 길이를 변경할 수 없다

더 많은 저장 공간이 필요하면 더 큰 길이의 배열을 새로 만들고 이전 배열로부터 항목들을 복사해야 한다

 

가장 기본적인 방법으로 for 문을 이용

package ch05.sec09;

public class ArrayCopyByForExample {
	public static void main(String[] args) {
		//길이 3인 배열
		int[] oldIntArray = {1, 2, 3};
		
		//길이 5인 배열을 새로 생성
		int[] newIntArray = new int[5];
		
		//배열 항목 복사
		for(int i=0; i<oldIntArray.length; i++) {
			newIntArray[i] += oldIntArray[i];
		}
		
		//배열 항목 출력
		for(int i=0; i<newIntArray.length; i++) {
			System.out.println(newIntArray[i]);
		}
	}
}
1
2
3
0
0

 

 

System의 arraycopy() 메소드를 이용하면 한 줄만으로도 배열 복사를 할 수 있다

원본 배열: arr1

새 배열: arr2

arr1의 모든 항목을 arr2에 복사

System.arraycopy(arr1, 0, arr2, 0, arr1.length);
package ch05.sec09;

public class ArrayCopyExample {
	public static void main(String[] args) {
		//길이 3인 배열
		String[] oldStrArray = { "java", "array", "copy" };
		
		//길이 5인 배열을 새로 생성
		String[] newStrArray = new String[5];
		
		//배열 항목 복사
		System.arraycopy(oldStrArray, 0, newStrArray, 0, oldStrArray.length);
		
		//배열 항목 출력
		for(int i=0; i<newStrArray.length; i++) {
			System.out.println(newStrArray[i]);
		}
	}
}
java
array
copy
null
null

'이것이 자바다 > 05 참조 타입' 카테고리의 다른 글

5.12 열거(Enum) 타입  (0) 2024.04.01
5.10 향상된 for 문  (0) 2024.04.01
5.8 객체를 참조하는 배열  (0) 2024.03.31
5.7 다차원 배열  (0) 2024.03.31
5.6 배열(Array) 타입 - 배열 길이 length  (0) 2024.03.31