List 컬렉션 클래스 List 인터페이스를 구현한 모든 List 컬렉션 클래스는 1. 요소의 저장 순서가 유지하고, 2. 같은 요소의 중복 저장을 허용하는 특징을 가진다. ArrayList 클래스 ArrayList 클래스는 가장 많이 사용되는 컬렉션 클래스 중 하나다. ArrayList 클래스는 내부적으로 배열을 이용하여 요소를 저장한다. ArrayList 클래스는 배열을 이용하기 때문에 인덱스를 이용해 배열 요소에 빠르게 접근할 수 있다. 하지만 배열은 크기를 변경할 수 없는 인스턴스이므로, 크기를 늘리기 위해서는 새로운 배열을 생성하고 기존의 요소들을 옮겨야 하는 복잡한 과정을 거쳐야 한다. 물론 이 과정은 자동으로 수행되지만, 요소의 추가 및 삭제 작업에 걸리는 시간이 매우 길어지는 단점을 가지게..