/ ETC

JAVA - 자료구조, Collection 별 특징 정리

JAVA Collection별 특징과 시간 메소드별 시간 복잡도를 일목요연하게 정리한 내용입니다.

JAVA - 자료구조, Collection 별 특징 정리

Collection 특징 구분

구분 종류 중복허용 순서 존재 정렬여부 Thread-safe
LIST ArrayList
LinkedList
Vector
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
Yes
SET HashSet
LinkedHashSet
TreeSet
No
No
No
No
Yes
Yes
No
No
Yes
No
No
No
MAP HashMap
LinkedHashMap
Hashtable
TreeMap
No
No
No
No
No
Yes
No
Yes
Yes(Key)
No
No
Yes
No
No
Yes
No

자료 구조 특징 구분

종류 특징 중복허용 Null 허용
List 원하는 순서로 Element 삽입가능
각 요소는 Index 번호를 부여 받는다.
Yes -
Set 중복 Element 불가능
그러므로 쉽게 여부 중복확인 가능. 특정 순서(Order) 정할수 없음.
No -
Queue Output으로 나올 Element만 기본적으로 접근 가능하다
Yes -
PriorityQueue 가장 우선순위가 높은 Element가 Head First가 된다 Yes No
Deque 양 끝단에서 모두 삽입 / 삭제 가능 Yes -
Map Key / Value로 구성된다. 키 : No - 값 : Yes 키 : 하나의 (null) 키 허용) - 값 : Yes

LIST

Class Name Add Remove Get Contains
ArrayList O(1) O(n) O(1) O(n)
LinkedList O(1) O(1) O(n) O(n)

SET

Class Name Add Contains Next
HashSet O(1) O(1) O(h/n)
LinkedHashSet O(1) O(1) O(1)
EnumSet O(1) O(1) O(1)
TreeSet O(log n) O(log n) O(log n)

QUEUE

Class Name Offer Peak Poll Size
PriorityQueue O(log n) O(1) O(log n) O(1)
LinkedList O(1) O(1) O(1) O(1)
ArrayDequeue O(1) O(1) O(1) O(1)
DelayQueue O(log n) O(1) O(log n) O(1)

MAP

Class Name Get ContainsKey Next
HashMap O(1) O(1) O(h/n)
LinkedHashMap O(1) O(1) O(1)
WeakHashMap O(1) O(1) O(h/n)
EnumMap O(1) O(1) O(1)
TreeMap O(log n) O(log n) O(log n)
kimchanjung

김찬정

좀 더 넓은 TEST 커버리지! 좀 더 나은 Architecture! 좀 더 나은 Code Pattern! 보다 더 간결하고 깔끔한 코드!를 항상 갈망 합니다.

Read More