Java Collection

Java Collection

Collections는 복수개의 엘리먼트를 그룹화 하고 저장하고, 조회하고, 오퍼레이션을 하는 객체이다. 

Collection 인터페이스는 컬렉션 하위 인터페이스들의 최상위 루트이다. 

하위 인터페이스들은 다음과 같다. 

Collection Interface : 

List :
- Ordered : Yes
- Dups : Yes
- 특징 : 특정 위치에 엘리먼트를 입력할 수 있다. 

Map : 
- Ordered : 가능
- Dups : No
- 특징 : 유니크 키, 키에 매핑된 값이 저장된다. 

Queue : 
- Ordered : Yes
- Dups : Yes
- 특징 : FIFO에 의한 오퍼레이션

Set : 
- Ordered : 가능 
- Dups : No
- 특징 : 유니크한 엘리먼트만 받는다. (유니크 성을 위한 구분 필요, 동일성, 동등성)

Collection 구현체 : 

ArrayList : 
- 인터페이스 : List
- Ordered : Index
- Sorted : No
- Dups : Yes
- 특징 : 빠르게 크기를 조정할 수 있는 배열
- BigO :
-- O(1) : get, set
-- O(n) : add, remove, contains, indexOf

LinkedList : 
- 인터페이스 : List
- Ordered : Index
- Sorted : No
- Dups : Yes
- 특징 : 이중 연결 리스트로 구성됨
- BigO :
-- O(1) : get, set, add, remove(from either end)
-- O(n) : get, set, add, remove(from index), contains, indexOf

Vector : 
- 인터페이스 : List
- Ordered : Index
- Sorted : No
- Dups : Yes
- 특징 : 기존 컬렉션, 동기화된 컬렉션임

HashMap : 
- 인터페이스 : Map
- Ordered : No
- sorted : No
- Dups : No
- 특징 : 키/값의 쌍으로 저장
- BigO :
-- O(1) : get, put, remove, containsKey

Hashtable : 
- 인터페이스 : Map
- Ordered : No
- sorted : No
- Dups : No
- 특징 : 기존 컬렉션, 동기화된 컬렉션

LinkedHashMap : 
- 인터페이스 : Map
- Ordered : Insertion, last access
- sorted : No
- Dups : No
- 특징 : 링크드 리스트 and Hash table

TreeMap :
- 인터페이스 : Map
- Ordered : Balanced
- sorted : Yes
- Dups : No
- 특징 : Red-black tree map
- BigO :
-- O(log n) : remove, get, put, containKey

PriorityQueue :
- 인터페이스 : Queue
- Ordered : Priority
- sorted : Yes
- Dups : Yes
- 특징 : 힙 구현체
- BigO :
-- O(1) : peek
-- O(log n) : add, remove

HashSet : 
- 인터페이스 : Set
- Ordered : No
- sorted : No
- Dups : No
- 특징 : 셋에 빠른 접근 가능
- BigO :
-- O(1) : add, remove, contains

LinkedHashSet : 
- 인터페이스 : Set
- Ordered : Insertion
- sorted : No
- Dups : No
- 특징 : Linked list and Hash set
- BigO :
-- O(1) : add, remove, contains

TreeSet :
- 인터페이스 : Set
- Ordered : Sorted
- sorted : Yes
- Dups : No
- 특징 : Red-black tree set
- BigO :
-- O(log n) : add, remove, contains


# 참고 BigO notations : 
---------------------------------------------------------------
O(1) : 엘리먼트의 개수에 상관없이, 변화되지 않는 상수 시간
O(n) : 엘리먼트의 개수에 따라, 선형적으로 증가되는 시간
O(log n) : 엘리먼트 개수에 대해서 로그 로 증가되는 시간
O(n log n) : 엘리먼트 개수에 대해서 선형 로그로 정가되는 시간.
---------------------------------------------------------------


from : Java8 Cookbook 


Share this

Related Posts

Previous
Next Post »