| 인터페이스 | 설명 | 대표 구현체 |
|---|---|---|
List | 순서 유지, 중복 허용 | ArrayList, LinkedList |
Set | 순서 없음, 중복 허용 안 함 | HashSet, LinkedHashSet, TreeSet |
Map | 키-값 쌍 저장, 키 중복 불가 | HashMap, LinkedHashMap, TreeMap |
Queue | 선입선출 구조 | LinkedList, ArrayDeque, PriorityQueue |
Deque | 양방향 삽입/삭제 | ArrayDeque, LinkedList |
| 클래스 | 특징 |
|---|---|
ArrayList | 가장 널리 쓰이는 동적 배열 |
LinkedList | 이중 연결 리스트. 큐/스택처럼 사용 가능 |
HashSet | 중복 제거용 집합 |
HashMap | 키-값 저장용 자료구조 |
TreeSet | 자동 정렬되는 Set (이진 탐색 트리 기반) |
ArrayDeque | 스택/큐 구현에 효율적인 덱 |
| 메서드 | 설명 | 시간 복잡도 (대부분 ArrayList 기준) |
|---|---|---|
sort(list) | 리스트 정렬 (Comparable 또는 Comparator 기반) | O(n log n) |
reverse(list) | 리스트 역순 정렬 | O(n) |
shuffle(list) | 리스트 무작위 섞기 (Fisher–Yates 알고리즘) | O(n) |
min(list) / max(list) | 최소/최대 값 찾기 | O(n) |
binarySearch(list, key) | 정렬된 리스트에서 이진 탐색 | O(log n) |
fill(list, value) | 모든 요소를 같은 값으로 채움 | O(n) |
copy(dest, src) | 리스트 복사 (dest는 src와 같은 크기 이상이어야 함) | O(n) |
frequency(list, item) | 특정 요소의 개수 반환 | O(n) |
replaceAll(list, old, new) | 특정 요소 일괄 교체 | O(n) |
unmodifiableList(list) | 읽기 전용 리스트 반환 (원본을 감싸는 wrapper 생성) | O(1) (view 생성) |
| 메서드 | 설명 |
|---|---|
Collections.synchronizedList(list) | 멀티스레드용 동기화 래퍼 생성 |
Collections.unmodifiableList(list) | 읽기 전용 리스트 생성 |
List.of(...), Map.of(...) | Java 9+ 불변 컬렉션 생성 |
List.subList(from, to) 리스트 일부 구간 잘라내기Set.contains(value) 값 존재 여부Map.getOrDefault(key, default) 키 없을 때 기본값 반환Map.putIfAbsent(key, value) 없을 때만 삽입List.removeIf(predicate) 조건에 맞는 요소 일괄 삭제