데이터의 추가 삭제가 번거로움 -> 가변 길이 배열은 배열의 크기를 변경할 때마다 새로운 배열을 생성 -> 데이터 삭제 시 인덱스를 유지하기위해 빈 공간을 유지하기 때문에 비효율적이다.
자바에서 사용
//1. 기본 자료형
int[] arrIntegerA = new int[3];
int[] arrIntegerB = new int[]{0, 0, 0};
int[] arrIntegerC = {0, 0, 0};
arrIntegerC[2] = 0;
arrIntegerC[3] = 0; // 에러남. 배열의크기가 3이면 배열의 인덱스는 0~2.
// 배열의 크기를 넘긴 인덱스번호를 입력하고 값을 입력해도 길이가 늘어나지 않음
//2. ArrayList 자료형
ArrayList<Integer> list = new ArrayList(Arrays.asList(0, 0, 0));
list.get(2); // 2번 인덱스의 값 0 반환
list.get(3); // 3번 인덱스가 없기때문에 에러남
// 하지만 ArrayList는 배열의 길이를 늘려줄 수 있음
list.add(3, 0); // 3번인덱스자리에 0 추가
list.add(0); // list의 맨 뒤에 0 추가
list.add(0,0); // list의 맨 앞에 0 추가
// ArrayList에서 인덱스 번호로 값 보기
list.get(3); // 3번 인덱스의 값 반환
// ArrayList에서 값으로 인덱스 번호 보기
list.indexOf(3); // 값이 3인 데이터의 인덱스번호 반환