1) 배열의 복사
- 자바에서 배열은 한 번 생성하면 그 길이를 변경할 수 없다.
- 더 많은 데이터를 저장하기 위해서는 더욱 큰 배열을 만들고, 이전 배열의 데이터를 새로 만든 배열로 복사해야한다.
//System 클래스의 arraycopy() 메소드
System.arraycopy(원본 배열, 원본 배열의 복사 시작 위치, 복사할 배열, 복사할 배열의 복사 시작 위치, 복사할 요소의 개수);
//Array 클래스의 copyOf() 메소드
타입[] 배열 = Arrays.copyOf(원본배열, 배열길이);
//Object 클래스의 clone() 메소드
타입[] 배열 = (타입[]) 원본배열.clone();
int[] arr1 = new int[]{1, 2, 3, 4, 5};
int newLen = 10;
int[] arr2 = new int[newLen];
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
int[] arr3 = Arrays.copyOf(arr1, 10);
int[] arr4 = (int[])arr1.clone();
int[] arr5 = new int[newLen];
2) Enhanced for문
for(타입 변수이름 : 배열이나 컬렉션이름){
//배열의 길이만큼 반복적으로 실행할 명령문
}
int[] arr = new int[]{1, 2, 3, 4, 5};
for (int e : arr) {
System.out.print(e + " ");
}
//요소를 참조할 때만 사용하는 것이 권장되며, 요소의 값을 변경하는 작업에는 적합하지 않다.
int[] arr1 = new int[]{1, 2, 3, 4, 5};
int[] arr2 = new int[]{1, 2, 3, 4, 5};
for (int i = 0; i < arr1.length; i++) {
arr1[i] += 10; // 각 배열 요소에 10을 더함.
}
for (int e : arr2) {
e += 10; // 각 배열 요소에 10을 더함.
}
//첫번째 반복문은 배열 요소 그 자체의 값을 변경하는 것이지만
//두번째 반복문(Enhanced for문)은 배열 요소의 값을 복사한 값을 변경하는 것이므로 원본 배열에 영향이 없다
반응형
'개발 > 자바' 카테고리의 다른 글
자바 클래스의 이해: 필드, 메소드, 생성자로 알아보는 객체 지향 프로그래밍 기초 (0) | 2024.01.31 |
---|---|
자바 - 클래스(개념, 메소드) (0) | 2022.09.27 |
자바 - 다차원 배열 (0) | 2022.09.26 |
자바 - 배열, 1차원 배열 (0) | 2022.09.21 |
기타 제어문 (0) | 2022.09.20 |
댓글