P-Language/JAVA

배열 Array

hannah_tianlan 2020. 5. 25. 08:25

1.1 배열이란?

같은 타입의 여러변수를 하나의 묶음으로 다루는 것.

 

1.2 배열의 선언

원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[]를 붙인다.

대괄호[]는 타입 뒤에 붙여도 되고, 변수이름 뒤에 붙여도 되지만 주로 타입 뒤.

타입 [] 변수이름:
타입 변수이름[]:

생성된 배열을 다루기 위한 참조변수를 위한 공간을 만든것.

 

 

1.3 배열의 생성

배열을 생성해야만 데이터를 저장할 수 있는 공간이 만들어 지는 것.

연산자'new'와 함께 배열의 타입과 크기를 지정해 줘야 한다.

int score; //배열을 선언.
score = new int[5] //배열을 생성 (5개의 int값을 저장할 수 있는 공간 생성)

참조변수 배열의 예

String[] name;  //String타입의 참조변수 배열을 선언.
name = new String[3]; // String인스턴스의 참조변수를 담을 수 있는 배열을 생성

 

1.4 배열의 초기화

배열은 생성과 동시에 자동적으로 기본값으로 초기화 되지만, 원하는 값으로 초기화 하기 위한 방법이 있다.

int[] score = new int[5]; //크기가 5인 int형 배열을 생성.
score[0] = 10; //각 요소에 직접 값을 저장.
score[1] = 20;
score[2] = 30;
score[3] = 40;
score[4] = 50;

참조형 배열의 초기화 방법

String[] name = new String[3];
name[0] = new String("Kim");
name[1] = new String("park");
name[2] = new String("Lee");

배열의 크기는 따로 지정해 주지 않으며, 주어진 값의 개수에 따라 자동적으로 크기가 결정.

 

배열을 초기화 하는데 두가지 방법을 제공

int[] score = {100, 90, 80, 70, 60}; //1번
int[] score = new int[] {100, 90, 80, 70, 60} //2번

선언과 초기화를 따로 해야 하는 경우에는 2번 방법을 사용.

int[] score;
score = {100, 90, 80} //에러

int[] score;
score = new int[] {100, 90, 80}; // OK

 

1.5 배열의 활용

각 저장공간에 값을 저장하고 또는 저장된 값을 읽어오기 위해서는 배열 참조변수와 인덱스를 이용.

배열의 인덱스 : 배열의 각 저장공간에 자동적으로 주어지는 일련번호. 0부터 시작해서 1씩 증가하는 연속적인 증가값.

 

score[3] = 100; //배열 score의 4번째 요소에 100을 저장.
int value =score[3] // 배열 score의 4번째 요소에 저장된 값을 읽어서 value에 저장.

배열에서 for문은 거의 필수정으로 사용.

배열의 속성인 length를 사용하는 것이 견고한 코드를 만든다.

length는 배열의 크기가 변경됨에 따라 자동적으로 변경된 배열의 크기를 갖기 때문에 배열의 처리에 사용되는 for문의 조건식을 일일히 변경하지 않아도 된다.

 

1.6 다차원 배열

2차원 배열의 선언 방법

  • 타입[][] 변수이름;
  • 타입 변수이름[][];
  • 타입[] 변수이름[];

2차원 배열은 주로 테이블 형태의 데이터를 담는데 사용.

중괄호{}를 이용해서 2차원 배열의 생성과 초기화를 동시에 할 수 있음.

 

1.7 가변배열

2차원 이상의 다차원 배열을 생성할 때 전체 배열 차수 중 마지막 차수의 크기를 지정하지 않고, 추후에 각기 다른 크기의 배열을 생성함으로 고정된 형태가 아닌 보다 유동적인 가변 배열을 구성할 수 있다.

 

1.8 배열의 복사

배열은 한 번 생성하면 그 크기를 변경할 수 없기 때문에 더 많은 저장공간이 필요하다면 보다 큰 배열을 새로 만들고 이전 배열로부터 내용을 복사해야 함.

for문을 사용하거나 System클래스의 arraycopy()를 사용