study/Java

[sist] 2024.01.15_Java : 향상된 for문, 이차원 배열, 삼차원 배열

듀2 2024. 2. 4. 20:25

* 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