| 자료 구조 | 참조 | 탐색 | 삽입 | 삭제 | 특이 사항 |
|---|---|---|---|---|---|
| 배열(Vector) | O(1) | O(n) | O(1) (맨 끝) | O(1) (맨 끝) | 중간 삽입/삭제: O(n) |
| 연결리스트 | O(n) | O(n) | O(1) | O(1) | Doubly linked list 기준 |
| 스택(Stack) | O(n) | O(n) | O(1) | O(1) | Top 참조: O(1) |
| 큐(Queue) | O(n) | O(n) | O(1) | O(1) | Front 참조: O(1) |
| 맵(Map) | O(logn) | O(logn) | O(logn) | O(logn) | Balanced tree 기반 (예: TreeMap) |
| 셋(Set) | O(logn) | O(logn) | O(logn) | O(logn) | Balanced tree 기반 |
| 해시 테이블 | O(1) | O(1) | O(1) | O(1) | 최악: O(n) (해시 충돌) |
| 힙(Heap) | O(1) | O(n) | O(logn) | O(logn) | 최대/최소 참조: O(1) |

| 비교 기준 | 배열 | 연결 리스트 |
|---|---|---|
| 메모리 공간 | 연속 O | 연속 X |
| 삽입/삭제 (맨 끝/맨 앞 제외) | O(n) | O(1) |
| n번째 요소 참조 | O(1) | O(n) |
| 탐색 | O(n) | O(n) |
결론 데이터의 추가와 삭제가 많을 경우 연결 리스트 사용이 유리, 참조가 많을 경우 배열 사용이 유리