반응형
성능을 비교할 자료구조는 세가지 이다.
앞에서 구현한 MyArrayList, MyLinkedList 와 Java에서 구현되어 있는 LinkedList 이다.
앞에서 구현한 MyLinkedList와 Java에서 구현된 LinkedList 차이점은 MyLinkedList는 List 인터페이스만 구현하였고, LinkedList는 List와 Deque 인터페이스를 구현한 이중 연결 리스트이다.
구분 |
MyArrayList |
MyLinkedList |
LinkedList |
add(끝) |
1 |
n |
1 |
add(시작) |
n |
1 |
1 |
add(일반적) |
n |
n |
n |
get/set |
1 |
n |
n |
indexOf/lastIndexOf |
n |
n |
n |
isEmpty/size |
1 |
1 |
1 |
remove(끝) |
1 |
n |
1 |
remove(시작) |
n |
1 |
1 |
remove(일반적) |
n |
n |
n |
응용 프로그램의 실행시간이 get, set 메서드에 의존한다면 ArrayList 클래스가 좋은 선택
실행시간이 시작이나 끝 근처에 요소를 추가하거나 제거하는 연산에 의존한다면 LinkedList 클래스가 좋다.
반응형
'프로그래밍 노트 > 자료구조' 카테고리의 다른 글
[Think Data Structures] Java Map 인터페이스 구현 및 분석_2 (0) | 2018.11.06 |
---|---|
[Think Data Structures] Java Map 인터페이스 구현 및 분석_1 (0) | 2018.11.06 |
[Think Data Structures] Java LinkedList 클래스 구현 및 분석 (0) | 2018.11.01 |
[Think Data Structures] Java ArrayList 클래스 구현 및 분석 (0) | 2018.10.31 |
StringBuffer (0) | 2018.09.09 |