예를 들어 1부터 10까지의 숫자들 중 홀수들의 모임인 1,3,5,7,9라는 집합을 생각해 보자.
이것들을 숫자나 문자열만으로 표현 하기는 쉽지가 않다.
그래서 이러한 문제를 해결하기 위해 배열이 있다.
int [] isOdd = {1,3,5,7,9};
배열은 자료형 타입 바로 옆에 [] 기호를 사용하여 표현한다. 위 예제와 같이 int자료형의 배열은 int[]로 표현되었다.
요일에 집합은 다음과 같이 String 배열로 표현 할 수 있다.
String [] weeks ={"월","화","수","목","금","토","일"};
즉, 배열이란 자료형의 종류가 아닌 자료형의 집합을 의미한다.
위에서 살펴본 요일의 집합 예제는 다음과 같이 고쳐 쓸 수 있다.
String[] weeks = new String[7];
weeks[0] = "월";
weeks[1] = "화";
weeks[2] = "수";
weeks[3] = "목";
weeks[4] = "금";
weeks[5] = "토";
weeks[6] = "일";
String[] weeks = new String[]; // 길이에 대한 숫자값이 없으므로 컴파일 오류가 발생한다.
위에서 만든 요일의 배열중 "목"에 해당되는 값을 얻으려면 다음과 같이 인덱스를 이용해야한다.
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
System.out.println(weeks[3]);
배열은 대부분 for문과 함께 사용된다. for문에 배열이 사용될 경우 배열의 길이만큼 for문을 돌리는 것이 중요한데 배열의 길이는 다음과 같이length를 이용하여 구한다.
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
for (int i=0; i<weeks.length; i++) {
System.out.println(weeks[i]);
}
아마 자바코드를 작성하면서 보게 될 가장 많은 오류중의 하나는 바로 다음의 오류일 것이다.
ArrayIndexOutOfBoundsException
다음의 예처럼 요일 배열의 길이는 총 7개인데 만약 8번째 값을 얻으려고 시도하면 다음과 같은 오류가 발생한다.
System.out.println(weeks[7]); // 8번째 배열값이 없으므로 ArrayIndexOutOfBoundsException 오류가 발생한다.