동일한 타입의 변수들을 하나의 묶음으로 다루는것.
배열은 1차원 배열과 다차원 배열, 이 두 가지로 나눌 수 있다.
// 선언과 동시에 초기화
int[] array = new int[5]; // array -> {0, 0, 0, 0, 0}
// 배열의 요소 값을 지정하지 않으면 각 요소는 해당 타입의 기본값으로 채워진다.
// 선언 후 초기화 및 값 채우기
int[] array; //선언
array = new int[5]; // array -> {0, 0, 0, 0, 0}
array[0] = 1; // array -> {1, 0, 0, 0, 0}
array[1] = 2; // array -> {1, 2, 0, 0, 0}
// 선언과 동시에 값을 넣어 초기화
int[] array = {1, 2, 3, 4, 5}
int[] array = new int[] {1, 2, 3, 4, 5}; // array -> {1, 2, 3, 4, 5}
배열을 생성하기 위해서는 위에서처럼 new 데이터타입[배열크기]를 입력해야 한다.
new int[5]는 정수형 요소를 5개 갖는 배열을 만든다는 뜻이다.
int[] num = {5, 6, 7};
String[] day = {"웧", "화", "수", "목", "금", "토", "일"};
System.out.println(num[0]); // 5가 출력
System.out.println(day[6]); // "일"이 출력
System.out.println(num.length); // 배열의 길이 3이 출력
System.out.println(day.length); // 7이 출력
for(int i = 0; i < day.length; i++) {
System.out.println(day[i]); // 순서대로 월 부터 일 까지 출력
}
// for문을 활용해 배열의 값들을 쉽게 출력할 수 있다.
day 배열의 길이는 7이지만 배열의 요소는 0부터 카운트 하기 때문에 6번째 자리까지 있다.
만약 배열의 길이가 7인데 day[7]을 불러 올 경우 없는 요소이기에 오류가 발생한다.
1차원 배열만으로는 한계가 있기 때문에 배열이 배열의 요소로 들어가 있는 다차원 배열이 존재하며 학교를 예로 들면 반이 여러개 있고 반마다 학생이 여러명 있다. 배열로 표현하려면 일일이 한 반마다 선언을 해줘야 하는데 이는 번거롭기 때문에 다차원 배열을 사용한다.
String[][] school = new String[5][30]; // 5개의 반에 30명
shool[0][0] = "학생1"; // 다차원 배열에 값을 넣을 때
5개의 반과 30명의 학생을 다차원 배열로 표현하고 각 요소마다 값만 넣어주면 1차원 배열보다 편하게 표현할 수 있다.
String[][] arr = new String[3][3]; // 3행 3열 크기의 배열 선언
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++)
System.out.print("(" + i + ", " + j + ")");
System.out.println(); // 한줄 작성 후 줄바꿈
}
/* 출력
(0, 0)(0, 1)(0, 2)
(1, 0)(1, 1)(1, 2)
(2, 0)(2, 1)(2, 2)
*/
다중 for문을 활용해 다차원 배열의 각 요소들의 위치를 표현했다.