티스토리 뷰

반응형

객체, 데이터들을 효율적으로 관리 할 수 있는 자료구조들이 있는 라이브러리를 컬렉션(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)
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함