## 배열 ![](https://hackmd.io/_uploads/SkJ7pb3up.png) - 고정된 크기의 동일한 데이터 유형 요소의 정렬된 컬렉션을 저장하는 프로그래밍의 데이터 구조 - 같은 타입의 여러 변수를 하나의 묶음으로 다룰 때 사용된다 - 많은 양의 값(데이터)를 다룰 때 유용하다 - **배열의 각 요소는 서로 연속적**이다 > - 배열을 사용하지 않은 경우 > - ![](https://i.imgur.com/D6Wg9IK.png) > - 배열을 사용한 경우 > - ![](https://hackmd.io/_uploads/H1lGe5FOa.jpg) ### 배열의 선언 - 배열의 선언은 배열을 사용하기 위해 필요한 공간을 메모리에 할당하는 것을 의미한다 - 자바에서 배열을 선언하는 방법은 크게 두 가지가 있다. 타입 뒤에 대괄호를 사용하는 방법과 변수 이름 뒤에 대괄호를 사용하는 방법이다. - ex) `int[] arr;` or `int arr[];` ### 배열의 초기화 - 배열을 선언하고 나서는 배열을 사용하기 위해 필요한 공간을 메모리에 할당하는 것을 의미한다 - 각 배열의 요소는 자동으로 기본값으로 초기화된다 - 기본적으로 `new` 연산자를 사용하여 배열을 초기화한다 - ex) `int[] arr = new int[5];` - 자바는 여러 방법으로 배열을 선언하고 동시에 초기화할 수 있다 - ex) `int[] arr = new int[5];` - ex) `int[] arr = {1, 2, 3, 4, 5};` - ex) `int[] arr = new int[]{1, 2, 3, 4, 5};` ### 배열의 사용 - 배열의 각 요소에 접근하기 위해서는 인덱스를 사용한다 - 인덱스는 0부터 시작한다 - ex) `arr[0]`, `arr[1]`, `arr[2]`, `arr[3]`, `arr[4]` - `length` 속성을 사용하여 배열의 크기를 알 수 있다 - ex) `arr.length` ```java int[] myArray = {1, 2, 3, 4, 5}; int firstElement = myArray[0]; // 첫 번째 요소 접근 int thirdElement = myArray[2]; // 세 번째 요소 접근 int lastElement = myArray[4]; // 마지막 요소 접근 System.out.println("myArray 배열의 첫 번째 요소 : " + firstElement); // 1 System.out.println("myArray 배열의 세 번째 요소 : " + thirdElement); // 3 System.out.println("myArray 배열의 마지막 요소 : " + lastElement); // 5 ``` ```java int[] myArray = {1, 2, 3, 4, 5}; int arrayLength = myArray.length; // 배열의 길이를 구한다. System.out.println("myArray 배열의 길이 : " + arrayLength); // 5 ``` ## 다차원 배열 - 2차원 이상으로 구현된 배열을 의미하며, 배열 요소로 또 다른 배열을 가지는 배열을 의미한다 - 2차원 배열 : 배열 요소로 1차원 배열을 가지는 배열 - 3차원 배열 : 배열 요소로 2차원 배열을 가지는 배열 - 4차원 배열 : 배열 요소로 3차원 배열을 가지는 배열 - ... ### 2차원 배열의 사용 ![](https://hackmd.io/_uploads/BkwObcFua.png) - 배열 요소로 1차원 배열을 가지는 배열 - 2차원 배열을 선언하고 초기화하는 방법은 1차원 배열과 동일하다 - `타입[][] 배열이름 = new 타입[크기][크기];` - ex) `int[][] arr = new int[2][3];` - 2차원 배열도 여러 방법으로 선언하고 동시에 초기화할 수 있다 - ex) `int[][] arr = new int[2][3];` - ex) `int[][] arr = {{10, 20, 30}, {40, 50, 60}};` - ex) `int[][] arr = new int[][]{{10, 20, 30}, {40, 50, 60}};` - ![](https://i.imgur.com/awf0why.png) ```java int[][] arr = new int[2][3]; int k = 10; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { arr[i][j] = k; // 인덱스를 이용한 초기화 k += 10; } } 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(); } ```