다차원 배열이란?
- 1차원 배열 여러개가 모여 2차원 이상의 배열을 이루는 배열이다.
- 일반적으로 다차원 배열은 2차원 배열을 의미한다.
2차원 배열
- 행, 열의 구조로 이루어진 배열이다.
- 실제 데이터가 저장되는 공간은 열, 열 공간의 주소를 저장하는 공간은 행이다.
- 행 크기: 배열명.length
- 열 크기: 배열명[행인덱스].length
✍ 2차원 배열 선언 기본 문법
데이터타입[][] 변수명;
✍ 2차원 배열 생성 기본 문법
변수명 = new 데이터타입[행크기][열크기];
✍ 2차원 배열 선언 및 생성, 초기화를 한꺼번에 수행하는 방법
데이터타입[][] 변수명 = {
{1, 2, 3},
{4, 5, 6}
};
자 예를 들어 행이 2, 열이 3인 배열을 선언하고 생성해보자.
int[][] arr;
arr = new int[2][3];
이때 배열의 모습은 이런 구조를 가지게 된다.
배열에 저장된 데이터가 직접 저장되는 것이 아니라, 주소값이 전달된다.
이제 배열에 값을 저장하여 초기화를 해보자
arr[0][0] = 1; arr[0][1] = 2; arr[0][2] = 3;
arr[1][0] = 4; arr[1][1] = 5; arr[1][2] = 6;
- 위에서 선언과 생성을 해 주었으니 데이터를 저장해주기만 하면 된다.
만약 생성 및 선언, 초기화를 하고 싶다면
int[][] arr = {
{1, 2, 3},
{4, 5, 6}
};
이렇게 적어주면 된다.
이 배열의 값을 출력하기 위해서는 1차원 배열과 마찬가지로 반복문을 사용해야 한다.
public static void main(String[] args) { // 메인 메서드 시작
int[][] arr = { // 배열의 선언 및 생성과 초기화를 동시에 수행
{1, 2, 3},
{4, 5, 6}
};
for(int i=0; i<arr.length; i++) { // 배열의 행을 구하는 반복문
for(int j=0; j<arr[i].length; j++) { // 배열의 열을 구하는 반복문
System.out.print(arr[i][j] + " ");
}
System.out.println(); // 줄바꿈 용
}
System.out.println("--------------------------------------");
System.out.println("배열 arr의 행크기 : " + arr.length);
System.out.println("배열 arr[0]의 열크기 : " + arr[0].length);
System.out.println("배열 arr[1]의 열크기 : " + arr[1].length);
} // 메인 메서드 끝
💻
배열 열의 크기가 동일하지 않을 수 있다.
public static void main(String[] args) { // 메인 메서드 시작
int[][] arr = {
{1, 2, 3},
{4, 5, 6},
{7, 8},
{1, 2, 3, 4, 5},
{1, 3, 3, 4, 5, 6, 7}
};
for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println("--------------------------------------");
System.out.println("배열 arr의 행크기 : " + arr.length);
System.out.println();
System.out.println("배열 arr[0]의 열크기 : " + arr[0].length);
System.out.println("배열 arr[1]의 열크기 : " + arr[1].length);
System.out.println("배열 arr[2]의 열크기 : " + arr[2].length);
System.out.println("배열 arr[3]의 열크기 : " + arr[3].length);
System.out.println("배열 arr[4]의 열크기 : " + arr[4].length);
} // 메인 메서드 끝
- 배열을 출력하는 방식은 동일하다.
💻
- 배열의 크기가 각각 다른 걸 확인할 수 있다.
'개발 > Java' 카테고리의 다른 글
[Java] 왼쪽으로 밀기 문제 (0) | 2023.01.13 |
---|---|
[Java] 2차원 배열 연습문제 (0) | 2023.01.13 |
[Java] 배열과 메서드를 조합한 연습문제 (0) | 2023.01.10 |
[Java] 배열 사용 시 주의 사항 (0) | 2023.01.09 |
[Java] 배열 (0) | 2023.01.09 |