Array
: index로 빠르게 값을 찾는 것이 가능함
선언할 때 크기와 데이터 타입을 지정해야 함
- 데이터가 계속 늘어날 때, 최대 사이즈를 알 수 없을 때는 부적합
- 데이터 삽입, 삭제 비효율
- 삽입 시 원래 값을 뒤로 밀어내고 해당 index에 덮어써야 함. 사이즈를 정해놓았기 때문에 문제가 발생할 수 있음
LinkedList
: 데이터의 삽입 및 삭제가 빠름
크기를 정해주지 않아도 됨, List에서는 순서가 중요(Array는 index가 중요)
- 크기가 정해지지 않아 삽입, 삭제 시 Array에서 발생하는 문제 해결 가능
- 데이터를 삽입, 삭제 시 시간이 오래 걸리는 단점
ArrayList
: 데이터를 찾는 데 빠르지만, 삽입 및 삭제가 느림
단일, 다중 등 여러 가지 존재
종류가 무엇이든 한 노드에 연결될 노드의 포인터 위치를 가리키는 방식
→ 단일 : 뒤 노드만 가리킴 / 다중 : 앞 뒤 노드 모두 가리킴
- 삽입, 삭제 시 전체를 돌지 않아도 이전 값과 다음 값이 가리켰던 주소 값만 수정하여 연결하면 되기 때문에 빠름
- List에서 k 번째 값을 찾는 경우 비효율적
- index가 없기 때문에 처음부터 탐색해야 함