728x90
Java Collection
인터페이스 | 특징 | 구현클래스 |
List | 순서가 있는 데이터의 집합, 데이터의 중복을 허용 | ArrayList, LinkedList, Stack, Vector |
Set | 객체의 순서가 없으며, 데이터의 중복을 허용하지 않음 | HashSet, TreeSet, EnumSet |
Queue | 객체를 입력한 순서대로 저장되며, 데이터의 중복을 허용 | PriorityQueue, DelayQueue, LinkedList |
Map | 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합 순서가 없으며, 키는 중복을 허용하지 않으며 값은 중복을 허용 |
HashMap, TreeMap, HashTable, Properties |
List
Add | Remove | Get | Contains | Data Structure | |
ArrayList | O(1) | O(n) | O(1) | O(n) | Array |
LinkedList | O(1) | O(1) | O(n) | O(n) | LinkedList |
CopyonWriteArrayList | O(n) | O(n) | O(1) | O(n) | Array |
Set
Add | Contains | Next | Data Structure | |
HashSet | O(1) | O(1) | O(h/n) | Hash Table |
LinkedHashSet | O(1) | O(1) | O(1) | Hash Table + Linked List |
EnumSet | O(1) | O(1) | O(1) | Bit Vector |
TreeSet | O(log n) | O(log n) | O(log n) | Red-black tree |
CopyonWriteArraySet | O(n) | O(n) | O(1) | Array |
ConcurrentSkipList | O(log n) | O(log n) | O(1) | Skip List |
Queue
Offer | Peak | Poll | Size | Data Structure | |
PriorityQueue | O(log n) | O(1) | O(log n) | O(1) | Priority Heap |
LinkedList | O(1) | O(1) | O(1) | O(1) | Array |
ArrayDequeue | O(1) | O(1) | O(1) | O(1) | Linked List |
ConcurrentLinkedQueue | O(1) | O(1) | O(1) | O(n) | Linked List |
ArrayBlockingQueue | O(1) | O(1) | O(1) | O(1) | Array |
PriorityBlockingQueue | O(log n) | O(1) | O(log n) | O(1) | Priority Heap |
SynchronousQueue | O(1) | O(1) | O(1) | O(1) | None! |
DelayQueue | O(log n) | O(1) | O(log n) | O(1) | Priority Heap |
LinkedBlockingQueue | O(1) | O(1) | O(1) | O(1) | Linked List |
Map
Get | ContainsKey | Next | Data Structure | |
HashMap | O(1) | O(1) | O(h/n) | Hash Table |
LinkedHashMap | O(1) | O(1) | O(1) | Hash Table + Linked List |
IdentityHashMap | O(1) | O(1) | O(h/n) | Array |
WeakHashMap | O(1) | O(1) | O(h/n) | Hash Table |
EnumMap | O(1) | O(1) | O(1) | Array |
TreeMap | O(log n) | O(log n) | O(log n) | Red-Black Tree |
ConcurrentHashMap | O(1) | O(1) | O(h/n) | Hash Table |
ConcurrentSkipListMap | O(log n) | O(log n) | O(1) | Skip List |
Reference
728x90
'언어 > Java' 카테고리의 다른 글
[Java] 스택(Stack), 큐(Queue) (0) | 2022.01.03 |
---|---|
[Java] 순열(Permutation), 조합(Combination) (0) | 2021.12.23 |
[Java] 형 변환을 도와주는 다양한 메서드 (0) | 2021.09.08 |
[Java] 정렬 Comparable vs Comparator 사용 (0) | 2021.07.16 |
[Java] 흐름제어문 - continue, break, return (1) | 2020.12.02 |