레이블이 Collection인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Collection인 게시물을 표시합니다. 모든 게시물 표시

Java Collection

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