728x90
다차원 배열
배열 항목에 또 다른 배열 대입을 다차원 배열이라 한다.
변수[1차원인덱스][2차원인덱스]...[N차원인덱스]
intArray[2][4];
값 목록으로 다차원 배열 생성
배열 변수 선언 시 타입 뒤에 대괄호 {}를 차원의 수만큼 붙이고, 값 목록도 차원의 수만큼 중괄호를 중첩시킨다.
예제 코드
int[][] scores = {
{70, 80, 60},
{90, 80}
};
new 연산자로 다차원 배열 생성
배열 변수 선언 시 타입 뒤에 대괄호를 차원의 수만큼 붙이고, new 타입 뒤에도 차원의 수만큼 대괄호 []를 작성하면 된다.
int[][] scores = new int[2][3];
항목들은 초기값으로 지정된다.
배열의 길이를 다르게 줄 수 있다.
int[][] scores = new int[2][];
scores[0] = new int[3];
scores[1] = new int[2];
- 1차원의 배열 길이로 배열 객체 우선 생성
- 각각의 항목 값으로 길이가 다른 2차원 배열 대입
다차원 배열 예제 코드
더보기
public static void main(String[] args) {
int[][] mathScores = new int[2][3];
// 배열 항목 초기값 출력
for (int i = 0; i < mathScores.length; i++) {
for (int j = 0; j < mathScores[i].length; j++) {
System.out.println("[i][j] = " + i + j + mathScores[i][j]);
}
}
System.out.println();
// 배열 항목 값 변경
mathScores[0][0] = 80;
mathScores[0][1] = 83;
mathScores[0][2] = 85;
mathScores[1][0] = 86;
mathScores[1][1] = 90;
mathScores[1][2] = 92;
// 전체 학생의 수학 평균 구하기
int totalStudent = 0;
int totalSum = 0;
for (int i = 0; i < mathScores.length; i++) {
totalStudent += mathScores[i].length;
for (int j = 0; j < mathScores[i].length; j++) {
totalSum += mathScores[i][j];
}
}
double totalAvg = (double) totalSum / totalStudent;
System.out.println("totalStudent = " + totalStudent);
System.out.println("totalAvg = " + totalAvg);
// 각 반의 학생 수가 다를 경우 저장을 위한 2차원 배열 생성
int[][] engScore = new int[2][];
engScore[0] = new int[2];
engScore[1] = new int[3];
// 배열 항목 초기값 출력
for (int i = 0; i < engScore.length; i++) {
for (int j = 0; j < engScore[i].length; j++) {
System.out.println("engScore = " + engScore[i][j]);
}
}
// 배열 항목 값 변경
engScore[0][0] = 90;
engScore[0][1] = 91;
engScore[1][0] = 92;
engScore[1][1] = 93;
engScore[1][2] = 94;
// 전체 학생의 영어 평균 구하기
totalStudent = 0;
int totalEngSum = 0;
for (int i = 0; i < engScore.length; i++) {
totalStudent += engScore[i].length;
for (int j = 0; j < engScore[i].length; j++) {
totalEngSum += engScore[i][j];
}
}
double totalEngAvg = (double) totalEngSum / totalStudent;
System.out.println("totalEngAvg = " + totalEngAvg);
}
728x90
'IT > Java' 카테고리의 다른 글
[Java] 배열 복사(Array Copy) (0) | 2024.02.27 |
---|---|
[Java] 배열의 객체 참조 (0) | 2024.02.27 |
[Java] 배열(Array) (0) | 2024.02.27 |
[Java] 문자열 .equals() / .charAt() / .length() / .replace() / .substring() / .indexOf() / .contains() / .split() (0) | 2024.02.26 |
[Java] null / NullPointerException (0) | 2024.02.26 |