1. 배열(Array)
배열은 인덱스(index)와 인덱스에 대응하는 데이터들로 이루어진 연속적인 자료구조로 같은 타입의 데이터 형태를 모아둔 것이라 말할 수 있다.
2. 배열 선언 및 생성
자바에서 배열의 생성은 C/C++ 와 달리 두 단계로 이루어져 있다.
① 배열에 대한 레퍼런스 변수 선언
② 배열 생성 - 배열의 저장 공간 할당
코드로 살펴보자.
2-1. 배열에 대한 레퍼런스 변수 intArray 선언
자바에서 배열을 선언을 하는 순서는 데이터 타입 / 변수명 / 배열 기호 순으로 작성하고 코드화 하면 아래와 같다.
배열 기호는 "[ ]"를 뜻한다.
int intArray[];
이 선언만으로 배열 공간이 할당되지 않으며 위 코드와 같이 레퍼런스 변수 intArray만 생성된다. intArray는 배열 공간에 대한 주소 값(레퍼런스 값)을 가지며 그 자체가 배열은 아니다. 아직 정수를 저장할 배열 공간이 생성되지 않았으므로 intArray 값은 null을 가지고 있다. 배열의 타입은 배열을 구성하는 원소의 타입이며, 배열의 레퍼런스 변수는 다음 두 가지 방법으로 선언할 수 있다.
int intArray[];
int[] intArray;
배열 선언 시 [ ] 안에 배열의 크기를 지정해서는 안 된다. 아래 코드처럼 작성할 경우 컴파일 오류를 발생하니 주의하자.
int intArray[10];
2-2. 배열 생성
배열 생성은 선언한 배열에 대해 공간을 할당해주는 것으로 배열 이름 / = / new / 데이터 타입 / 데이터 크기 순으로 작성하고 코드화 하면 아래와 같다.
intArray = new int[5];
2-3. 배열의 선언과 동시에 생성
int intArray[] = new int[5];
3. 배열 초기화
배열 선언문에서 "{ }"에 원소를 나열하면 초기화된 배열을 만들 수 있다. 배열을 초기화하는 예를 들면 다음과 같다.
int intArray[] = {4,3,2,1,0};
double doubleArray[] = {0.01,0.02,0.03,0.04};
intArray 배열의 크기는 자동으로 5가 되며, doubleArray 배열의 크기는 자동으로 4가 된다. 생성되는 배열의 원소 개수는 {}에 나열된 값의 개수로 정해 지므로 []에 크기를 주어서는 안 된다.
4. 배열 인덱스와 배열 원소 접근
배열의 인덱스는 정수만 가능하다. 인덱스는 0부터 시작하며 마지막 원소의 인덱스는 배열의 크기에서 -1을 한 것이다.
배열의 원소는 인덱스를 이용하여 접근하며, 예를 들면 다음과 같다.
int intArray[] = new int[5]; // 원소가 5개인 배열생성, 인덱스는 0~4까지 가능
intArray[0] = 5; // 원소 0에 5 저장
intArray[3] = 6; // 원소 3에 6 저장
int n = intArray[3]; // 원소 3의 값을 읽어 n에 저장 n은 6이 됨
다음은 음수 인덱스를 사용하거나 배열의 범위를 넘어서 잘못 접근하 사례이다.
n = intArray[-2]; //실행오류 인덱스로 음수 사용불가
n = intArray[5]; //실행오류 5는 인덱스의 범위(0~4)를 넘었음
배열의 원소에 접근하려면 반드시 배열이 생성되어 있어야 하고 생성되어 있지 않는 상태에서 배열을 사용하면 배열이 초기화되지 않았다는 컴파일 오류가 발생하거나, 실행시간 오류가 발생한다.
'Java' 카테고리의 다른 글
[Java] indexOf/lastIndexOF (0) | 2023.01.12 |
---|---|
[Java] OOP(ObejectOrientedProgramming) (1) | 2022.12.05 |
[Java] 메모리 구조 (Static,Stack,Heap) (0) | 2022.11.07 |
[Java] Class 와 Instance 그리고 Object (0) | 2022.11.07 |
[Java] Method (4) (0) | 2022.11.07 |