배열 (array)
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
•
같은 타입의 변수가 여러개 필요할 때 사용하면 유용
int [] score = new int[5]; // 5개의 int 값을 저장할 수 있는 배열 생성
Java
배열의 선언과 생성
배열의 선언
// 타입[] 변수이름;
int[] score;
String[] name;
// 타입 변수이름[];
int score[];
String name[];
Java
배열의 생성
// 배열의 선언
int[] score;
// 배열 생성
score = new int[5];
// 선언과 배열을 한줄로
int[] score = new int[5];
Java
•
배열의 각 요소들은 자동으로 각 타입의 디폴트값으로 초기화됨.
배열의 인덱스
•
배열의 요소(element) : 생성된 배열의 각 저장 공간
•
인덱스(index) : 배열의 요소마다 붙여진 일련번호
1이 아닌 0부터 시작!
// 길이가 5인 int 배열
int[] score = new int[5]
// 배열 score의 4번째 요소에 100 저장
score[3] = 100;
// 배열 score의 4번째 요소의 값을 읽어 value에 저장
int value = score[3];
// 인덱스에 변수나 수식도 사용 가능
for (int i=0; i<5; i++) {
score[i] = i * 10;
}
int tmp = score [i+1];
Java
ArrayEx1.java
배열의 길이
•
배열의 길이 : 배열의 요수의 개수, 값을 저장할 수 있는 공간의 개수
// 길이가 5인 int 배열
int[] arr = new int[5];
Java
•
길이가 0인 배열도 생성 가능 → 유용하게 쓰일 곳이 있다!
int[] arr = new int[0];
Java
배열이름.length
•
배열 길이에 대한 정보를 얻는 방법
int[] arr = new int[5];
int tmp = arr.length; // tmp에 arr의 길이 값인 5가 저장됨.
Java
•
for 문의 조건식에 배열의 길이를 직접 적는 것보단
.length를 사용하는 것이 코드 관리나 에러 방지에 좋음.
int[] score = new int[5];
// 배열의 길이를 변경하더라도, 조건식을 변경할 필요가 없음.
for (int i=0; int < score.length; i++) {
System.out.println(score[i]);
}
Java
배열의 길이 변경
•
한번 선언한 배열은 길이 변경이 불가 → 배열에 저장할 공간이 부족할 경우는 어떻게?
1. 더 큰 배열을 새로 생성
2. 기존 배열의 내용을 새로운 배열에 복사
→ 비용이 많이 들고 까다로운 작업이므로, 애초에 넉넉히 2배 정도 길이로 잡아서 선언하자.