| 타입 | 특징 | 중복 허용 | 순서 보장 | 대표 구현 클래스 |
|---|---|---|---|---|
| List | 순서가 있는 데이터, 인덱스로 접근 가능 | O | O | ArrayList, LinkedList, Vector |
| Set | 중복 제거, 순서 보장 없음 (일부 예외) | X | X (HashSet), O (LinkedHashSet) | HashSet, LinkedHashSet, TreeSet |
| Map | 키-값 쌍 저장, 키는 중복 허용 안 함 | 키: X, 값: O | X (HashMap), O (LinkedHashMap) | HashMap, LinkedHashMap, TreeMap |
| Queue | 선입선출(FIFO), 우선순위 기반 가능 | O | O | LinkedList, PriorityQueue |
| Stack | 후입선출(LIFO), 동기화 지원 가능 | O | O | Stack |
ArrayList:
get()).List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
System.out.println(list.get(0)); // 출력: 1
LinkedList:
get()).List<Integer> list = new LinkedList<>();
list.add(1);
list.add(2);
System.out.println(list.get(0)); // 출력: 1
Vector:
List<Integer> list = new Vector<>();
list.add(1);
list.add(2);
HashSet:
O(1)).Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(1); // 중복 허용하지 않음
System.out.println(set); // 출력: [1, 2]
LinkedHashSet:
Set<Integer> set = new LinkedHashSet<>();
set.add(1);
set.add(2);
set.add(1); // 중복 허용하지 않음
System.out.println(set); // 출력: [1, 2]
TreeSet:
O(log n)).Set<Integer> set = new TreeSet<>();
set.add(2);
set.add(1);
set.add(3);
System.out.println(set); // 출력: [1, 2, 3]
HashMap:
O(1)).Map<Integer, String> map = new HashMap<>();
map.put(1, "One");
map.put(2, "Two");
map.put(1, "Duplicate"); // 키 중복 시 덮어씀
System.out.println(map); // 출력: {1=Duplicate, 2=Two}
LinkedHashMap:
Map<Integer, String> map = new LinkedHashMap<>();
map.put(1, "One");
map.put(2, "Two");
System.out.println(map); // 출력: {1=One, 2=Two}
TreeMap:
O(log n)).Map<Integer, String> map = new TreeMap<>();
map.put(2, "Two");
map.put(1, "One");
map.put(3, "Three");
System.out.println(map); // 출력: {1=One, 2=Two, 3=Three}
LinkedList:
offer)과 제거(poll) 작업 지원.Queue<Integer> queue = new LinkedList<>();
queue.offer(1);
queue.offer(2);
System.out.println(queue.poll()); // 출력: 1
PriorityQueue:
Queue<Integer> queue = new PriorityQueue<>();
queue.offer(3);
queue.offer(1);
queue.offer(2);
System.out.println(queue.poll()); // 출력: 1
push)과 제거(pop)을 지원.Stack:
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
System.out.println(stack.pop()); // 출력: 2
| 타입 | 구현 클래스 | 특징 | 중복 허용 | 순서 보장 |
|---|---|---|---|---|
| List | ArrayList | 배열 기반, 읽기 빠름 | O | O |
| LinkedList | 연결 리스트, 삽입/삭제 빠름 | O | O | |
| Vector | ArrayList와 유사, 스레드 안전 | O | O | |
| Set | HashSet | 순서 없음, 빠른 검색 | X | X |
| LinkedHashSet | 입력 순서 유지 | X | O | |
| TreeSet | 정렬된 순서 | X | O (정렬 순서) | |
| Map | HashMap | 순서 없음, 빠른 검색 | 키: X, 값: O | X |
| LinkedHashMap | 입력 순서 유지 | 키: X, 값: O | O | |
| TreeMap | 정렬된 키 순서 | 키: X, 값: O | O (정렬 순서) | |
| Queue | LinkedList | 선입선출(FIFO), 일반적인 큐 | O | O |
| PriorityQueue | 우선순위 기반 | O | O (우선순위) | |
| Stack | Stack | 후입선출(LIFO), 동기화 지원 | O | O |