다차원 배열
2차원 이상의 배열을 의미하며, 배열 요소로 또 다른 배열을 가지는 배열을 말한다.
자바에서는 2차원 배열까지만 가능하다.
형식
고정길이
자료형[][] 배열명 = { {10, 20, 30 }, {40, 50, 60}};
자료형[][] 배열명;
배열명 = new 자료형[개수][개수];
가변길이
배열명을 선언하고 행의 개수만 지정한 후 열은 다양하게 크기를 잡을 수 있다.
자료형[][] 배열명;
배열명 = new 자료형[개수][];
배열명[0] = new 자료형[개수];
배열명[1] = new 자료형[개수];
배열명[2] = new 자료형[개수];
[ 예시 ]
int[][] ar; // 2차원 배열 선언
ar = new int[3][]; // 행 3개
ar[0] = new int[3]; // 0행에 열 크기를 3으로 하겠다. {{0,0,0}, { }, { }}
ar[1] = new int[1]; // 1행에 열 크기를 1으로 하겠다. {{ }, { 0 }, { }}
ar[2] = new int[2]; // 2행에 열 크기를 2으로 하겠다. {{ }, { }, {0,0}}
정적 할당(C언어)
1차원 배열
5 | 20 | 4 | 30 |
2차원 배열
1 | 5 | 0행 |
60 | 40 | 1행 |
8 | 25 | 2행 |
행으로 구분짓는다.
이 배열을 1차원 배열이 3개 있다고 봐도 무관하다.
0행 | 1행 | 2행 | |||
1 | 5 | 60 | 40 | 8 | 25 |
[1][1] == 1행에 2번째 값 == 40
자바의 동적 할당
new로 동적 할당
자료형[][] 배열명;
배열명 = new 자료형[개수][개수];
행 | 열 | |||
[0] | ----- | [0] | [1] | [2] |
[1] | ----- | [0] | [1] | [2] |
[2] | ----- | [0] | [1] | [2] |
[3] | ----- | [0] | [1] | [2] |
행은 열의 주소를 가지고 있다.
[예제]
package multiArray;
public class MultiArray01 {
public static void main(String[] args) {
int[][] ar;
ar = new int[3][2];
ar[0][0] = 10;
ar[0][1] = 20;
ar[1][0] = 30;
ar[1][1] = 40;
ar[2][0] = 50;
ar[2][1] = 60;
System.out.println("배열명 ar = "+ ar);
for(int i=0; i<ar.length; i++) { // 헹 // 행마다 주소의 값을 갖는다.
System.out.println("ar[" + i + "] = " + ar[i]);
for(int j=0; j<2; j++) { // 열
System.out.println("ar[" + i + "][" + j + "] = " + ar[i][j]);
}
System.out.println();
}
}
}
[실행결과]
배열명 ar = [[I@372f7a8d
ar[0] = [I@85ede7b
ar[0][0] = 10
ar[0][1] = 20
ar[1] = [I@7229724f
ar[1][0] = 30
ar[1][1] = 40
ar[2] = [I@4c873330
ar[2][0] = 50
ar[2][1] = 60
'Java' 카테고리의 다른 글
Java, Method (메소드)의 정의 (0) | 2024.07.12 |
---|---|
Java, Class의 정의(객체지향, seter/geter, Overload) (0) | 2024.07.12 |
Java, Lotto 프로그램 - 자동 번호(중복된 값 제외, 오름차순, 줄바꿈) (1) | 2024.07.10 |
Java, 기본 Array(배열)과 Object(최상위 클래스) (1) | 2024.07.10 |
Java, Selection Sort (선택 정렬), Bubble Sort (거품 정렬) / 정렬 방식 (0) | 2024.07.09 |