비전공자를 위한 자바 프로그래밍/Chapter 2. 기초 문법

2.3 여러 가지 배열 - 2.3.2 다차원 배열

codecraze111 2024. 12. 10. 09:56

 보통 1차원이 아닌 2차원, 3차원 등을 통틀어 다차원이라고 합니다. 앞에서 배열을 특정 데이터 타입을 담는 상자(변수)들의 묶음이라고 정의하였는데, 이때 배열은 1차원 배열을 말합니다. 1차원 배열은 개념적으로 상자들이 일렬로 나열되어 있습니다. 반면, 다차원 배열은 이런 상자 묶음들이 2차원, 3차원처럼 나열되어 있는 것을 말합니다.

[그림 2-10] 다차원 배열의 개념
[그림 2-10] 다차원 배열의 개념



다차원 배열은 1차원 배열을 생성하는 것과 매우 유사합니다. 다만 배열 표시인 ‘[]’의 개수를 몇 차원인지에 따라 늘려 주면 됩니다.

[다차원 배열의 선언]
(1) 배열이 어떤 타입의 데이터를 담을 것인지 명시             -> int
(2) 배열의 이름을 적음                                                     -> int arr2
(3) 몇 차원 배열인지 적음(차원 수만큼 []를 적음)              -> int arr2[][]
(4) 등호(= )를 적고, new 연산자를 적음                           -> int arr2[][] = new
(5) 배열이 담을 데이터 타입과 배열의 크기를 적음             -> int arr2[][] = new int[2][3]
(6) 쌍반점(;)을 찍음                                                         -> int arr2[][] = new int[2][3];



다음 [다차원 배열의 선언]에서 생성한 2차원 배열 arr2에 값을 저장하는 것도 1차원 배열에 값을 저장하는 것과 유사합니다. 자주 사용되는 2차원 배열은 표(또는 엑셀 시트)와 비슷한 형태로 생각하면 됩니다.

다차원 배열 요소에 값 저장 1



 다음처럼 다차원 배열의 선언과 동시에 배열 요소에 값을 저장할 수도 있습니다. 이때, ‘[]’ 개수만큼 ‘{}’ 개수도 늘어나야 합니다.

다차원 배열 요소에 값 저장 2
다차원 배열 요소에 값 저장 2


 
 이번 장에서 공부한 다차원 배열을 활용한 ‘MultidimensionalArray’라는 클래스를 만들어 봅시다. [코드 2-11]을 보면 정수 값을 담는 int 형 2차원 배열에 값을 저장하고 이 값들을 출력하고 있습니다.

[코드 2-11] 다차원 배열의 선언, 값 저장과 출력
[코드 2-11] 다차원 배열의 선언, 값 저장과 출력

 

[실행결과]
arr2[0][0]: 1
arr2[0][1]: 2
arr2[0][2]: 3
arr2[1][0]: 4
arr2[1][1]: 5
arr2[1][2]: 6

 

NOTE!

자바에서 ‘+’ 연산자 앞에 문자열이 있는 경우, 문자열과 ‘+’ 연산자 뒤의 값이 접합되어 하나의 문자열이 됩니다. 따라서 [코드 2-11]에서 ‘System.out.println ( "arr2[0][0]: " + arr2[0][0]);’의 실행 결과로 ‘arr2[0][0]’이란 문자열에 ‘arr2[0][0]’ 변수의 값인 1이 접합되어 ‘arr2[0][0]: 1’이 출력된 것입니다. 이뿐만 아니라 두 개의 문자열을 합칠 때도 ‘+’ 연산자를 사용할 수 있습니다. 예를 어, ‘String str = "안녕?"+" 좋은 아침!";’처럼 ‘+’ 연산자로 두 문자열을 접합한 값을 변수 str에 저장하고, ‘System.out.println ( str);’을 실행하면 ‘안녕? 좋은아침!’이 출력됩니다.