본문 바로가기

Java

[chapter 05 ] 배열

01. 배열이란


  • 배열이란

- 동일한 자료 유형의 여러 값들로 이루어진 객체(Object)

- new로 생성되는 참조 자료형 

int[] scores = new int[30];

- 배열에 포함된 값들은 기본 자료형(Primitive Type)일 수도 있고,

다른 객체를 참조하는 참조 자료형(Reference Type)일 수도 있음

 

 

  • 배열을 선언하는 두 가지 방법

1) 타입[ ] 식별자

2) 타입 식별자[ ]->크기 x

 

-값 목록이 있다면, {}으로 값의 목록을 지정하여 초기화할 수 있음

String[ ] days ={ "월요일", "화요일",..." 일요일"};

* 위 방식은 배열 변수 선언과 동시에 해 주어야 함

 

- 다음과 같은 방식으로 new 연산자 뒤에 나열할 수도 있다. 

String[ ] days;

days = new String[ ] { "월요일", "화요일",..." 일요일"};

 

 

  • 배열의 선언 방식 종류

1) 일반적인 인스턴스 배열의 선언과 생성 

int[] intArray = new int[3];

배열의 초기화

intArray[0] = 3;
intArray[1] = 6;
intArray[2] = 9;

 

2) 생성과 동시에 초기화, 길이정보 생략가능

int[] intArray = new int[3] {1, 2, 3}; (X)
int[] intArray = new int[] {1, 2, 3}; (O)

 

3) 줄여서 표현가능

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

 

  • ArrayIndexOutOfBoundsException

- 배열의 범위를 벗어난 곳에 접근하려면 ArrayIndexOutOfBoundsException을 일으킨다

- 배열의 인덱스는 0부터 시작한다는 점을 잊지말자

 

 

  • 다차원 배열 형태

타입[ ][ ] 배열명 = new 타입[행_수][열_수]

 

 

  • 배열의 복사

- 배열은 한번 생성하면 크기를 변경할 수 없다

- 추가로 저장공간이 필요하다면, 원래 배열보다 큰 배열을 만들고 이전 배열의 항목값을 복사해야 한다

 

  • 향상된 For Loop

- 객체를 좀 더 쉽게 처리할 수 있는 향상된 for문을 제공(Java5이상)

- 카운터 변수, 증감식을 사용하지 않고, 배열 및 컬렉션 항목의 개수만을 반복

 

  • 배열의 복사 (arraycopy)

* 위의 코드는 아래의 코드의 결과와 같다

 

***새로 알게 된 점: 

참조 자료형: String 등

기본 자료형: char, int, float등

 

참조 자료형의 할당

String[ ] arr = new String[3]; 

여기서 arr =  {nulll, null, null}이고,

 

기본 자료형의 할당

int[ ] arr = new int[3];

여기서 arr = {0, 0, 0} 이다

 

* 이유는 기본자료형 같은 경우, Heap에 int 공간을 할당할 때 초기값(ex. int의 경우 초기값 0)이 있다

그러나 참조자료형 같은 경우 heap에 String 공간할당이 되어도 참조자료형인 String에 아무것도 들어있지 않기때문에(아무것도 참조하지 않기 때문에) null이 나온다. 

 

'Java' 카테고리의 다른 글

[Chapter08]객체지향 프로그래밍2  (0) 2021.12.14
[chapter04] 제어문  (0) 2021.12.10
[Chapter11] 제네릭과 컬렉션  (0) 2021.12.08
[Chapter01]자바 언어 소개  (0) 2021.12.08
[Chapter07-2] 객체지향 프로그래밍1  (0) 2021.12.07