- 1차 배열의 각 칸에 새로운 배열을 넣는 형태
- 1차 배열의 각 칸은 행이 되고, 각각의 칸에 추가된 개별적인 배열이
"열"의 개념이 되어 "행렬"을 구성하게 된다.
- 행과 열에 대한 크기를 명시한다
-> 배열이름 = new 데이터형[행][열];- 2차원 배열의 선언과 할당의 일괄처리
-> 데이터형[][] 배열이름 = new 데이터형[행][열];
- 2차원 배열의 경우 블록 괄호 "{}"를 2중으로 겹쳐서
2차원 배열을 표현한다.- 행과 열의 구분에는 콤마(,)가 사용된다.
- 컴파일러가 블록괄호 "{}"의 요소를 파악하면 행, 열의 크기가 산출될 수 있으므로 배열의 크기 설정을 위한 [][]에는 배열의 크기를 명시하지 않는다.
- 행, 열에 대한 인덱스를 통하여 값을 대입한다.
- 일괄지정 하는 경우
- 2차원 배열의 길이는 행에 대한 측면과 열에 대한 측면을 나누어서 생각해야 한다.
- 행의 길이
-> 1차 배열의 길이는 2차 배열에서는 행의 크기로 조회가 된다.
ex ) int rows = grade.length;- 열의 길이
-> 열의 길이는 각 행에 대하여 개별적으로 조회해야 한다.
ex ) int cols = grade[행].length;
package array;
public class Main01 {
public static void main(String[] args) {
// 성적표에 대한 2차 배열 생성
// 학급 성적을 위한 배열
int[][] grade = new int[3][3];
// 둘리의 과목별 점수
grade[0][0] = 75;
grade[0][1] = 82;
grade[0][2] = 91;
// 도우너의 과목별 점수
grade[1][0] = 88;
grade[1][1] = 64;
grade[1][2] = 50;
// 또치의 과목별 점수
grade[2][0] = 100;
grade[2][1] = 100;
grade[2][2] = 90;
// 2차 배열을 탐색하여 총점과 평균점수 구하기
for(int i = 0; i < grade.length; i++) { // 행
// 반복문 안에서 선언된 변수는 매 실행시마다 새로 생성된다
int sum = 0;
int avg = 0;
for(int j = 0; j < grade[i].length; j++) { // 열
// i번째 행의 j번째 열의 데이터를 누적처리
sum += grade[i][j];
}
// i번째 위치의 평균점수 구하기 = 총점 / 과목수
// i번째 학생의 과목수는 grade 배열의 i번째에 대한 길이
avg = sum / grade[i].length;
System.out.println("총점 = " + sum + ", 평균 = " + avg);
}
}
}