List와 ArrayList 차이점은 의외로 간단하답니다 ?!
차이점은
- List는 인터페이스이고
- ArrayList는 List 인터페이스를 구현한 클래스
입니다
아래 사진을 함께 볼까요 ?
List는 Collection을 상속받은 인터페이스입니다.
즉 이 인터페이스를 바로 사용하지는 못하고 구현체가 있어야 하죠.
예를 들어 아래 코드를 볼게요.
만약 제가 위와 같이 선언하였을때 발생하는 에러를 보시게 되면
List is abstract; cannot be instantiated
를 보시게 될거에요. 이 말의 의미는
List는 추상화 되었으니 인스턴스화 할 수 없다
입니다.
그렇다면 List 인터페이스를 사용하기 위해서는 그 구현체가 있어야겠지요 ?
그게 바로 ArrayList 입니다. 즉, 클래스이지요.
그래서 아래를 보시면
List 인터페이스로 자료구조를 선언한 뒤 ArrayList 클래스를 통해 인스턴스화 할 수 있게 되었어요.
아래에 보시면 Constructs an empty list with an initial capacity of ten. 을 볼 수 있어요.
이는 구조체가 처음 초기화될때 10의 크기로 된다는 의미에요.
(ArrayList는 동적으로 크기가 변경되어서 최초 크기가 10입니다!)