* Improvement for(향상된 for문)
- JDK 1.5에서부터 추가된 문법.
- 배열, Collection(java.util.List, java.util.Set)의 처음 방부터 마지막 방까지 출력하는 일.
- index를 사용할 수 없다.
문법)
for(대상의 값을 저장할 변수명 : 대상){ // 대상: 배열, Collection
변수명; // 대상의 처음 방부터 끝 방까지 사용할 수 있다.
}
int[] arr = {10, 20, 30, 400};
// 코드가 짧다, 처음 방부터만 가능
for(int value : arr){
value;
}
// 코드가 길다, 인덱스를 사용한 작업 가능(끝 방부터 거꾸로 출력, 특정 방의 값을 얻기)
for(int i = 0; i < arr.length; i++){
arr[i];
}
String[] arr = {,,,,,};
for(String str : arr){
}

* 이차원 배열
- 행과 열로 구성된 배열.
- 모든 행에 열의 개수는 동일하다.
- 행의 수: 배열명.length
- 열의 수: 배열명[행의번호].length
1. 선언)
데이터형[][] 배열명 = null;
데이터형 배열명[][] = null;
2. 생성) - heap에 생성되고, 모든 방의 값이 초기화된다.
배열명 = new 데이터형[행의수][열의수];
1+2)
데이터형[][] 배열명 = new 데이터형[행의수][열의수];
int[][] arr = new int[2][4];
3. 값 할당)
배열명[행의번호][열의번호] = 값;
arr[0][0] = 12;
arr[0][3] = 30;
arr[1][1] = 33;

4. 값 사용)
배열명[행의번호][열의번호]
5. 일괄처리)
- 인덱스가 행과 열에 대해 두 개 필요. => for문을 2개
for(int i = 0; i < 배열명.length; i++){ // 행
for(int j = 0; j < 배열명[i].length; j++){ // 열
배열명[i][j];
} // end for
} // end for
* 개선된 for
- 이차원 배열의 한 행은 일차원 배열로 이루어져 있다.
for(데이터형[] 배열명 : 이차원배열명) {
for(배열방의 값을 저장할 변수 : 배열명) {
}
}
* 이차원 배열의 기본형 형식의 사용
문법)
데이터형[][] 배열명 = new 데이터형[][]{{값,,}, {,,,}, {,,,},,,};
// new 데이터형[][] 생략 가능
// 행 구분 기호 필요
int[][] arr = {{10, 20, 30, 40}, {50, 60, 70, 80}};

* 삼차원 배열
- 면, 행, 열로 구성된 배열.
- 면의 수: 배열명.length
- 행의 수: 배열명[면의 번호].length
- 열의 수: 배열명[면의 번호][행의 번호].length
문법)
1. 선언)
데이터형[][][] 배열명 = null;
데이터형 배열명[][][] = null;
2. 생성)
배열명 = new 데이터형[면의수][행의수][열의수];
1+2)
데이터형[][][] 배열명 = new 데이터형[면][행][열];
int[][][] arr = new int[2][2][3];

3. 값 할당)
배열명[면][행][열] = 값;
4. 값 사용)
배열명[면][행][열]
* 일괄처리
for(int i = 0; i < 배열명.length; i++){ //면
for(int j = 0; j < 배열명.length; j++) { //행
for(int k = 0; k < 배열명.length; k++) { // 열
배열명[i][j][k];
}
}
}
* 향상된 for
- 삼차원 배열의 한 면은 이차원 배열로 이루어져 있다.
- 이차원 배열의 한 행은 일차원 배열로 이루어져 있다.
- 일차원 배열의 한 열은 단일형으로 이루어져 있다.
for(이차원 배열 : 삼차원 배열명){
for(일차원 배열 : 이차원 배열명){
for(단일형 : 일차원 배열명){
}
}
}
* 기본형 형식의 사용
데이터형[][][] 배열명 = new 데이터형[][][]{{{값,},{,,}},{{,,},{,,}},,,};
// new 데이터형[][][] 생략 가능
// 면 구분 괄호, 행 구분 괄호 필요
int[][][] arr3 = new int[][][]{{{1, 2, 3}, {4, 5, 6}}, {{7, 8, 9}, {10, 11, 12}}};

728x90