- ArrayList는 List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트이다.
- 인덱스 기반으로 자료를 순차적으로 저장한다.
- 저장 시 데이터의 순서가 있고, 중복을 허용한다.
ArrayList 특징
- Java.util.List계열이고 가장 많이 사용되는 클래스이다.
- 배열의 불편한점을 개선한 자료구조 이다.
- 객체(데이터)에 순서가 지정된다.
- 모든 타입의 객체를 저장할 수 있다. 다만, object 타입은 안된다.
- 저장하는 객체의 갯수에 제한이 없다.
- 데이터의 추가 삭제 시 임시 배열을 생성하여 사용한다.

ArrayList와 배열의 차이점
배열과 비교
ArrayList 생성
List list = new ArrayList();//타입 미설정 Object로 선언된다.
List<Student> members = new ArrayList<Student>();//타입설정 Student객체만 사용가능
List<Integer> num = new ArrayList<Integer>();//타입설정 int타입만 사용가능
List<Integer> num2 = new ArrayList<>();//new에서 타입 파라미터 생략가능
List<Integer> num3 = new ArrayList<Integer>(10);//초기 용량(capacity)지정
List<Integer> list2 = new ArrayList<Integer>(Arrays.asList(1,2,3));//생성시 값추가
- ArrayList선언시 List list = new ArrayList() 선언시 캐스팅 오류가 발생할 수 있다.
- ArrayList를 사용할시에는 ArrayList에 타입을 명시해주는것이 좋다.