세 자료구조를 한 문장으로 정의하면 아래와 같이 말할 수 있다.


좀 더 자세히 비교하면?
우선 배열(Array)는 선언할 때 크기와 데이터 타입을 지정해야 한다.
int arr[10];
String arr[5];
이처럼 Array는메모리 공간에 할당할 사이즈를 미리 정해놓고 사용하는 자료구조다.
따라서 계속 데이터가 늘어날 때, 최대 사이즈를 알 수 없을 대는 사용하기에 부적합하다.
또한 중간에 데이터를 삽입하거나 삭제할 때도 매우 비효율적이다.
4번째 index값에 새로운 값을 넣어야 한다면? 원래값을 뒤로 밀어내고 해당 index에 덮어씌워야한다. 기본적으로 사이즈를 정해놓은 배열에서는 해결하기엔 부접합한 점이 많다.
대신, 배열을 사용하면 index가 존재하기 때문에 위치를 바로 알 수 있어 검색에 편한 장접이 있다.
이를 해결하기 위해 나온 것이 List다.
List는 array처럼 크기를 정해주지 않아도 된다. 대신 array에서 index가 중요했다면, List에서는 순서가 중요하다.