Intro

이 글은 자바의 배열(array)에 대해서 다룹니다.


배열이란?

배열이란 ‘같은 타입’의 여러 변수를 연속된 공간(하나의 묶음, 하나의 변수)에 저장하는 구조를 의미한다.

img

위의 그림처럼 배열은 같은 타입의 연속된 공간을 통해서 데이터를 저장하는 구조이며,

인덱스를 통해서 원하는 원소의 위치에 바로 접근을 할 수 있다.


선언 및 초기화

배열을 선언 및 초기화하는 방식에는 여러 방법이 있다.

대표적으로는 직접 할당하는 방식과 new를 사용하는 방식이 있다.

int[] arr = {1,2,3,4,5}; // 직접할당

int[] arr = new int[5]; // new를 사용한 할당

arr = {1,2,3,4,5};

int[] arr = new int[] {1,2,3,4,5}; // 이렇게도 가능하다.

정리하자면 아래와 같다.

방식 선언과 초기화 크기 지정 사용 상황
int[] arr = {1, 2, 3, 4, 5} 동시에 자동 계산 간단한 배열 초기화
int[] arr = new int[5] 별개 가능 필수 크기만 먼저 지정하고 나중에 값을 넣고자 할 때
int[] arr = new int[] {1, 2, 3, 4, 5} 동시에 자동 계산 메서드 호출 등에서 명시적으로 new를 사용하는 경우, 선언 분리가 필요한 경우

다차원 배열

다차원 배열은 배열을 요소로 가지는 배열을 의미한다. 

배열 선언 시 각 행과 열의 크기를 선언한다.

 

다차원 배열의 선언 및 초기화

int[][] arr = new int[3][3];

arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };

int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };

또 다른 방법

int[] arr[] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };

자바가 유연하게 배열 선언을 허용하기 때문에 위와 같은 방식으로 선언 및 할당을 해도 오류는 발생하지 않는다.


비정방형 배열

int[][] arr = new int[3][];

int[][] arr = { {1, 2}, {3, 4, 5, 6}, {7, 8, 9} };

 자바의 2차원 배열은 배열의 배열이기 때문에, 모든 행이 동일한 길이를 가질 필요가 없다.

그래서 각 행의 요소의 길이가 제각각이어도 배열 선언 및 할당이 가능하다.

다차원 배열(3차원 이상)

int[][][] arr = new int[2][3][4];

arr = { { {1, 2, 3}, {4, 5, 6} }, { {7, 8, 9}, {10, 11, 12} } };

int[][][] arr = { { {1, 2, 3}, {4, 5, 6} }, { {7, 8, 9}, {10, 11, 12} } };

자바의 다차원 배열은 메모리 상에서 연속적이지 않다. 따라서 비정방형 배열과 정방형 배열 모두 구현 가능하다.


배열의 크기 확인(arr.length)

배열의 크기는 arr.length처럼 length를 통해서 확인할 수 있다.

태그:

카테고리:

업데이트:

댓글남기기