
다차원 배열
2차원 이상의 배열을 의미 (2차원 배열은 배열 요소로 1차원 배열, 3차원 배열은 배열 요소로 2차원 배열)
int[][] arr = new int[2][3];
int k = 10;
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
arr[i][j] = k; //인덱스를 이용한 초기화
k += 10;
}
}
for (int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]}
}
System.out.print();
}
실행 결과
10 20 30
40 50 60
arr[1][1] arr[1][2] arr[1][3]
arr[2][1] arr[2][2] arr[2][3]
배열 복사 (arraycopy)
- 원소를 하나 더 추가하고 싶을 때 이미 만들어진 방 개수를 변경하는 것은 불가능하므로
- 새로운 배열(방을 더 만듬)에 복사 해준다.
- arraycopy() 는 원래 배열의 시작 주소 값을 새로운 배열에 넣어준다.
% 배열을 복사하여 사이즈업 했을때 기존 배열을 메모리에서 삭제해준다.
String[] str1 = {"hello" , "java"};
String[] str2 = new String[3];
System.arraycopy(str1, 0, str2, 0, str1.length);
//원본, 몇번 쨰 부터 복사, 붙일곳, 몇번 쨰 부터 붙여넣기, 몇개 복사
for(int j = 0; j < str2.length; j++) {
System.out.println(str2[j]);
실행 결과
hello
java
null
Enhanced for 문
명시한 배열이나 컬렉션의 길이만큼 반복되어 실행
명시한 변수 이름으로 저장되며, 명령문에서 이 변수를 사용하여 참조 할 수 있다.
int[] arr = new int[]{1, 2, 3, 4, 5};
for (int e : arr) {
System.out.print(e);
}
실행 결과
1 2 3 4 5
for 문과 Ehanced for 문을 이용하여 모든 배열 요소에 10을 더하는 예제
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++) {
arr[i] += 10; //각 배열 요소에 10을 더함
}
// 실행결과 11, 12, 13, 14, 15
for (int e : arr2) {
e += 10; // 각 배열 요소에 10을 더함
}
// 실행결과 1, 2, ,3 ,4 5
for문을 사용하면, 각 배열 요소의 값을 변경 가능
Enhanced for문 사용하면, 배열 요소의 값을 변경하여도 원본 배열에 영향x
'Back_end > java' 카테고리의 다른 글
JAVA [7] 클래스 (0) | 2022.05.24 |
---|---|
JAVA [6] 객체 지향 and 열거 타입 (0) | 2022.05.24 |
JAVA [5-1] 배열 (0) | 2022.05.18 |
JAVA [4] 반복문 (for문, while문, do-while문) (0) | 2022.05.17 |
JAVA [3] 조건문 (IF / Switch case) (0) | 2022.05.17 |
댓글