study:java:javachobo:ch5
문서의 이전 판입니다!
배열
배열(array)이란
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 “배열”이라고 한다.
많은 양의 데이터를 저장하기 위해서, 그 데이터의 숫자만큼 변수를 선언해야 한다면 매우 혼란스러울 것이다.
이런 경우에 배열을 사용하면 하나의 변수로 많은 양의 데이터를 손쉽게 다룰 수 있다.
<color blue>서로 다른 타입의 데이터를 하나로 묶어서 다루려면, 클래스를 정의해서 사용하면 된다. </color>
배열의 선언
원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[]를 붙이면 된다.
가능하면 <color blue>타입[] 변수이름;</color> 을 추천한다.
선언방법 | 선언 예 |
타입[] 변수이름; | int[] score;
String[] name; |
타입 변수이름[]; | int score[];
String name[]; |
배열의 생성
배열을 선언한 다음에는 배열을 생성해야한다.
배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어지는 것 뿐이다.
배열을 생성해야만 비로소 데이터를 저장할 수 있는 공간이 만들어지는 것이다.
<color blue>배열을 생성하기 위해서는 new연산자를 사용하고 배열의 타입과 크기를 지정해 주어야 한다.</color>
int[] score; // 배열을 선언한다.(생성된 배열을 다루는데 사용될 참조변수 선언)
score = new int[5]; // 배열을 생성한다.(5개의 int값을 저장할 수 있는 공간생성)
위의 두 문장은int[] score = new int[5];와 같이 한 문장으로 줄여 쓸 수 있다.
배열도 객체이기 때문에 멤버변수와 메서드를 갖고 있으며, 이 중 멤버변수 length는 배열의 크기에 대한 정보를 담고 있다.
위의 예제코드에서 score의 크기가 5이므로 score.length의 값은 5가 된다.
<color blue>배열은 한번 생성되면 크기를 변경할 수 없다. </color>
배열의 초기화
배열은 생성과 동시에 자동적으로 자신의 타입에 해당하는 기본값으로 초기화되므로 배열을 사용하기 전에 초기화를 해주지 않아도 되지만,
원하는 값으로 초기화 하기 위해서 다음과 같이 한다.
int[] score = new int[5]; // 크기가 5인 int형 배열을 생성한다.
score[0] = 100; // 각 요소에 직접 값을 저장한다.
score[1] = 90;
score[2] = 80;
score[3] = 70;
score[4] = 60;
배열의 활용
배열의 각 저장공간에 값을 저장하고 또는 저장된 값을 읽어오기 위해서는 배열 참조변수와 인덱스를 이용한다.
배열의 인덱스는 배열의 각 저장공간에 자동적으로 주어지는 일련 번호인데, 0부터 시작해서 1씩 증가하는 연속적인 값이다.
크기가 5인 배열에서는 index의 범위가 0~4까지 모두 5개가 된다.
배열의 값을 읽거나 저장하기 위해서는 다음과 같이 배열 참조변수와 배열의 인덱스를 사용하면 된다.
score[3] = 100; // 배열 score의 4번째 요소에 100을 저장한다.
int value = score[3]; // 배열 score의 4번째 요소에 저장된 값을 읽어서 value에 저장한다.
배열을 다루는데 있어서 for문은 거의 필수적으로 사용된다.
이 때 for문의 조건식으로 배열의 크기를 직접 적어주는 것보다
배열의 속성인 length를 사용하는 것이 더 견고한 코드를 만든다.
int[] score = { 100, 90, 80, 70, 60, 50 };
for (int i=0; i < 6; i++) {
System.out.println(score[i]);
}
위의 코드는 배열의 각 요소를 for문을 이용해서 출력하는 일을 한다.
여기서 score배열의 크기는 6이며 인덱스의 범위는 0~5이다.
이 때 코드를 다음과 같이 변경하여 배열에 저장될 값을 하나 줄인다면,
배열의 크기가 5로 변경되었으므로 유효한 인덱스의 범위는 0~4가 된다.
length는 배열의 크기가 변경됨에 따라 자동적으로 변경된 배열의 크기를 갖기 때문에,
배열의 처리에 사용되는 for문의 조건식을 일일이 변경해주지 않아도 된다.
for(int i=0; i < score.length; i++) {
System.out.println(score[i]);
}
다차원 배열
가변 배열
배열의 복사
커맨드라인을 통해 입력받기
study/java/javachobo/ch5.1264033276.txt.gz · 마지막으로 수정됨: 2010/01/21 09:21 저자 starlits