IT/Java

[Java] 배열(Array)

Huitopia 2024. 2. 27. 10:16
728x90

배열(Array)

배열은 연속된 공간에 값을 나열시키고, 각 값에 index를 부여해 놓은 자료구조다.

int 배열은 int 타입의 값만 관리하고, String 배열은 문자열만 관리한다. 배열은 생성과 동시에 길이가 결정되며,  결정된 배열의 길이는 변경할 수 없다.

  • 같은 타입의 값만 관리
  • 길이 변경 불가

 

변수 선언

int[] intArray;
int intArray[];

배열 변수 선언은 두 가지 형태로 작성할 수 있지만, 관례적으로 첫 번째 방법을 사용한다.

 

int[] intArray = null;

배열 변수는 참조 변수로 힙 영역에 생성되고 힙 영역의 배열 주소를 저장한다. 참조할 배열이 없다면 null로 초기화 시킬 수 있다.

 

 

값 목록으로 배열 생성

int[] intArray = {1, 2, 3, 4, 5};

중괄호 {}는 나열된 값들을 항목으로 가지는 배열을 힙에 생성하고 번지를 리턴한다. 리턴된 번지를 저장 후 참조가 이루어진다.

 

intArray[1]; // 2

intArray[1] = 0; // {1, 0, 3, 4, 5}

생성된 배열에서 값을 바꾸고 싶다면 대입 연산자를 사용한다.

 

int[] intArray;
intArray = {0, 1, 2, 3, 4}; // error

중괄호{}로 감싼 값의 목록을 배열 변수에 대입할 때 배열 변수를 미리 선언한 후에는 값 목록을 변수에 대입할 수 없다.

int[] intArray;
intArray = new int[] {0, 1, 2, 3, 4};

배열 변수 선언 후 나중에 값을 대입하고 싶다면 new 타입[]을 중괄호 앞에 붙여주면 된다.

 

 

new 연산자

현재 값의 목록은 없고 향후 값들을 저장할 목적으로 배열을 미리 생성할 때 사용한다.

타입[] 변수 = new 타입[길이];

길이는 배열이 저장할 수 있는 항목 수를 말한다.

new 연산자는 해당 길이의 배열을 생성하고 배열의 번지를 리턴하기 때문에 배열 변수에 대입할 수 있다. 배열 변수가 이미 선언된 후에도 대입이 가능하다.

int[] intArray = null;
intArray = new int[5];


int[] intArray = new int[5];

길이 5인 int[] 배열을 생성하고, 배열 번지를 intArray 변수에 대입한다. new 연산자로 배열을 처음 생성하면 배열 항목은 기본값으로 초기화된다.

 

타입별 배열의 초기

데이터 타입 초기값
기본타입 byte[]
char[]
short[]
int[]
long[]
0
'\u0000'
0
0
0L
float[]
double[]
0.0F
0.0
boolean[] false
참조타입 클래스[]
인터페이스[]
null
null

 

 

배열 길이

배열에 저장할 수 있는 항목의 수를 말하며 .length를 이용해 얻을 수 있다.

배열변수.length;
intArray.length = 10; //	error

배열 length 필드는 읽기만 가능하여 값은 변경 불가하다.

 

 

 

728x90