배열
- 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조
- 인덱스 번호를 통해 번호에 해당하는 데이터를 찾을 수 있음

명칭
- index : 각각의 값들을 식별하기 위한 식별자
- value : 각각의 데이터
- element : 인덱스와 값을 합한 것
배열이 왜 필요할까?
- 데이터가 적을 땐 사용할 필요가 없다.
- 그러나 데이터가 많아진다면??
- ex) 학교 - 학년 - 반 식으로 그룹을 지어야한다.
- → 그룹 관리의 필요성 ⇒ 이럴때 필요한것이 배열 여러 데이터를 하나의 이름으로 그룹핑해서 관리하기 위한 데이터 스트럭쳐⭐
- 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 → 같은 종류의 데이터가 순차적으로 저장된다!!
배열의 장점
- 빠른 접근 가능
- why? 인덱스 번호를 통해 데이터의 맨 앞 주소만 알면 해당 데이터를 바로 찾을 수 있다.
배열의 단점
- 데이터가 가변적이라면 추가/수정/삭제가 어렵다.
- 미리 최대 길이를 지정해야 함
배열을 만드는 법
int[] numbers1 = new int[4];
int 엘리먼트의 데이터 타입
[] 배열임을 의미
[4] 배열의 크기
numbers[0] = 10;
int[] numbers2 = {10, 20, 30, 40};
int[] numbers3 = new int[]{10, 20, 30, 40};
- 배열의 크기만 알고 아직 뭘 담을지 모른다면 위 방식을 사용한다.
- 배열에 어떤 값을 담을 것인지 미리 알고 있다면 아래 방식을 사용한다.
배열의 값 가져오기
System.out.printLn(numbers1[0]);
System.out.printLn(numbers1[4]);
- 만약 아직 값을 지정하지 않은 엘리먼트의 값을 가져오려 한다면?
- 숫자인 경우 기본값으로
0
- 문자나 문자열, 객체인 경우 기본값으로
null 을 넣는다.
배열의 크기 알기
System.out.println(numbers1.length);
- 자바에서 배열의 길이 값은 내가 설정한 값들의 개수가 아니라. 그 배열을 구성하고 있는 element의 개수를 의미한다. → 그래서, 배열을 사용할 때 몇개의 값을 넣었는지를 알고 싶다면 프로그래밍을 할 때 따로 카운트를 해줘야한다.
int i=0;
while (numbers1.length > i) {
System.out.println(numbers1[i]);
i++;
}
for (int i=0; numbers1.length > i, i++) {
System.out.println(numbers1[i]);
}
- for문과 다르게 while문은 i의 초기값을 지정하는코드, 반복조건을 나타내는 코드, i의 증감식을 나태내는 코드가 응집되어있지 않고, 다 떨어져 있다.
- 이는 나중에 각 코드 사이에 다른 코드가 끼어 들어갈 수 있음을 의미한다.
- 이 반복문을 동작시키기 위한 코드들이 서로 멀리 떨어져있다?
- 그 사이에 수많은 버그를 발생시킬 코드가 포함될 가능성이 높아진다.
- 반복문의 동작방법을 한눈에 알아보기 어렵다.