다차원 배열
전 글에서 다뤘던 배열은 1차원 배열인데, 2차원 이상의 배열
즉, 다차원 배열도 선언해서 사용할 수 있다.
2차원 배열의 선언하는 방법은 1차원 배열과 같다.
선언 방법 | 선언 예 |
타입[][] 변수이름; | int[][] a; |
타입 변수이름[][]; | int a[][]; |
타입[] 변수이름[]; | int[] a[]; |
2차원 배열은 주로 테이블 형태의 데이터를 담는데 사용되며,
만일 4행 3열의 데이터를 담기 위한 배열을 생성하려면 다음과 같이 한다.
int[][] score = new int[4][3];
int[0][0] | int[0][1] | int[0][2] |
int[1][0] | int[1][1] | int[1][2] |
int[2][0] | int[2][1] | int[2][2] |
int[3][0] | int[3][1] | int[3][2] |
위의 그림처럼 4행 3열의 데이터, 모두 12개의 int값을 저장할 수 있는 공간이 마련된다.
2차원 배열의 초기화
2차원 배열도 괄호{ }를 사용해서 생성과 초기화를 동시에 할 수 있다.
다만, 1차원 배열보다 괄호{ }를 한번 더 써서 행별로 구분해준다.
int[][] arr ={
{1, 2, 3},
{4, 5, 6}
};
크기가 작은 배열은 간단히 한 줄로 써주는 것도 좋지만,
가능하면 행별로 줄 바꿈 해주는 것이 보기도 좋고 이해하기 쉽다.
만일 위에 arr배열처럼 선언을 해주었다면 1차원배열에서 자주썼던 배열의 길이 arr.length는 얼마일까?
배열 참조변수 arr이 참조하고있는 배열의 길이가 얼마인가를 세어보면 될 것이다.
즉, 2이다. arr.length는 2가 되지만, arr[0].length는 3이 된다.
arr[0]이 참조하고 있는 배열의 길이는 3이기 때문이다.
같은 이유로 arr[1].length도 3이다.
다음은 2차원 배열을 활용한 예제 프로그램이다.
다차원 배열의 활용
1. 빙고판을 만들고 입력받은 숫자를 빙고판에서 지우는 프로그램을 살펴보자.
먼저 5*5의 빙고판을 만들기 위해서 2차원배열 행과 열 모두 5로 설정한다.
그 다음, 1~25까지 배열의 값에 저장을 해준 다음,
Math.random * 5를 통해 0~4까지의 랜덤값을 bingo[x][y]로 설정한다음,
tmp를 이용해 1~25까지 설정해놨던 값을 뒤섞어준다.
그럼 위 그림의 결과 처럼 1~25까지의 숫자가 섞이게 되고,
입력값을 받은 다음 입력값이 있을 경우 값을 0으로 바꾸어준다.
2. 영어 단어를 보여주고, 뜻을 맞추는 프로그램을 살펴보자.
이 프로그램은 위의 프로그램보다 간단하다.
처음에는 words[i][0]번째 들만 출력하여, 영단어를 보여주고
입력받은 값을 통해 그 값이 words[i][1]과 맞으면 정답이고,
그게 만일 틀린다면 위 그림의 결과처럼 정답을 출력해주는 간단한 프로그램이다.
'JAVA > Basic' 카테고리의 다른 글
[JAVA-basic] 변수와 메소드 (0) | 2021.08.11 |
---|---|
[JAVA-basic] 클래스와 객체 (0) | 2021.08.11 |
[JAVA-basic] String배열 (0) | 2021.08.06 |
[JAVA-basic] 배열 (0) | 2021.08.04 |
[JAVA-basic] 형변환 (0) | 2021.07.28 |