티스토리 뷰
반응형
객체, 데이터들을 효율적으로 관리 할 수 있는 자료구조들이 있는 라이브러리를 컬렉션(Collection) 프레임워크라고 한다
https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html
java Collection API 문서를 보면 Collection의 상속 관계를 알 수 있다.
List, Set, Queue은 Collection 인터페이스을 상속받지만, Map 인터페이스는 구조상(key,value)의 차이가 있어 별도로 정의한다.
요약
구조를 한 눈에 정리하자면 아래와 같다.
인터페이스 | 순서 | 중복가능 | 구현클래스 | |
Collection | List | O | O | ArrayList, Stack, Vector, LinkedList |
Queue | O | O | DelayQueue, PriorityQueue, LinkedList | |
Set | X | X | HashSet, TreeSet, EnumSet | |
Map | O/X | X(키) | LinkedHashMap,HashMap,TreeMap |
List
ArrayList | LinkedList | Vector | Stack | |
특징 | 인덱스 순서로 저장되며 중복 요소를 포함할 수 있다. | |||
- resizable Array - 비동기식 - 배열을 이용한 요소저장 |
- Doubly-linked list - 비동기식 - 연결 리스트를 이용한 요소 저장 |
- ArrayList 클래스와 같은 동작 - 현재는 거의 사용X |
- LIFO - 선형 메모리 공간에 데이터 저장 |
Queue
Queue는 리스트와 유사한 특성을 갖고있지만, FIFO(First In First Out, 선입선출)인 특성을 갖고있다/
자바에서 큐는 LinkedList를 활용하여 생성해야한다. 그렇기에 Queue와 LinkedList가 다 import되어 있어야 사용이 가능하다.
Queue< E > q = new LinkedList< E >();
Set
HashSet | TreeSet | LinkedHashSet | |
특징 | 중복된 값은 저장하지 않는다 | ||
- 순서에 상관없이 요소 저장 - 해시 알고리즘 사용하여 검색속도가 빠름 |
- 오름차순 정렬 Default | - 입력한 순서 - JDK 1.4부터 제공 |
Map
HashMap | TreeMap | LinkedHashMap | |
출력 | 순서 보장X | Key 기준 정렬 | 입력한 순서 |
시간 복잡도 | O(1) | O(log N) | O(1) |
반응형
'Language > java' 카테고리의 다른 글
람다식 안에서 지역변수 사용하기 (0) | 2021.06.22 |
---|---|
컬렉션(Collection) sorted() (0) | 2021.05.26 |
[OCPJP]Java SE 8 Programmer II Certification Exam | 1Z0-809 덤프/DUMP 문제#81~93 (0) | 2021.03.01 |
[OCPJP]Java SE 8 Programmer II Certification Exam | 1Z0-809 덤프/DUMP 문제#61~80 (0) | 2021.03.01 |
[OCPJP]Java SE 8 Programmer II Certification Exam | 1Z0-809 덤프/DUMP 문제#41~60 (0) | 2021.03.01 |