[Java] 16. 배열 (1)

2023. 10. 24. 20:17Java언어 공부

배열

하나의 이름을 가지고 똑같은 타입을 여러 개 유지한다. => 동질 구조라고 함

 

다형성을 이용한 배열의 경우에는?

ex. 애완동물(객체) 배열이라면 강아지나 고양이 등 여러 가지가 올 수 있음 

 

배열의 요소는 위치에 의해 접근한다. (index 0부터 시작)

 

배열의 용량은 한번 정하면 바꿀 수 없다.

모든 요소를 바로 접근할 수 있다.

 

일차원 배열의 선언

타입이나 이름 둘 중 하나 선택하여 '[]'를 붙여 선언

 

자바의 배열은 항상 동적으로 생성한다. new를 붙여서 만들어야 함.

int scores[] = new int[10];

 

배열이름.length는 배열의 길이를 나타낸다.

length의 최댓 값은 2^31 - 1 즉, Integer.MAX_VALUE이다.

 

length는 public final 이다.

 

null과 new int[0]는 다른 것이다.

전자는 아무것도 가리키지 않는 것이고, 후자는 길이가 0인 배열을 가리킨다.

 

final과 배열

final은 다른 배열을 가리키지 못하게 한다.

배열의 내용 자체는 바꿀 수 있다.

 

객체 배열

객체 배열은 객체를 저장하는 것이 아닌 주소만 저장된다.

 

일차원 배열의 초기화

new int[]를 생략할 수 있음

초깃값 목록을 사용할 시,

- 용량을 지정할 수 없다.

- var을 사용할 수 없다.

 

다차원 배열

사용법은 비슷하나 한가지가 다르다.

각 행의 용량이 다를 수 있다.

int[][] a = new int[2][];
a[0] = new int[5];
a[1] = new int[3];

 

배열 선택식

 

배열의 범위를 벗어난 접근은 오류가 난다.

 

- 예외 : ArrayIndexOutofBoundException

- 유효한 색인 : 0부터 (용량-1)까지

- 실제 사용해야 할 색인 : 0부터 (크기-1)까지