Java 컬렉션 프레임워크에서 자주 쓰이는 것들

Jerry·2025년 7월 23일

✅ 1. 주요 컬렉션 인터페이스

인터페이스설명대표 구현체
List순서 유지, 중복 허용ArrayList, LinkedList
Set순서 없음, 중복 허용 안 함HashSet, LinkedHashSet, TreeSet
Map키-값 쌍 저장, 키 중복 불가HashMap, LinkedHashMap, TreeMap
Queue선입선출 구조LinkedList, ArrayDeque, PriorityQueue
Deque양방향 삽입/삭제ArrayDeque, LinkedList

✅ 2. 자주 쓰는 컬렉션 클래스

클래스특징
ArrayList가장 널리 쓰이는 동적 배열
LinkedList이중 연결 리스트. 큐/스택처럼 사용 가능
HashSet중복 제거용 집합
HashMap키-값 저장용 자료구조
TreeSet자동 정렬되는 Set (이진 탐색 트리 기반)
ArrayDeque스택/큐 구현에 효율적인 덱

✅ 3. Collections 유틸리티 메서드 (java.util.Collections 클래스)

메서드설명시간 복잡도 (대부분 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 생성)

✅ 4. 동기화 / 불변 컬렉션 만들기

메서드설명
Collections.synchronizedList(list)멀티스레드용 동기화 래퍼 생성
Collections.unmodifiableList(list)읽기 전용 리스트 생성
List.of(...), Map.of(...)Java 9+ 불변 컬렉션 생성

✅ 5. 기타 유용 기능

  • List.subList(from, to) 리스트 일부 구간 잘라내기
  • Set.contains(value) 값 존재 여부
  • Map.getOrDefault(key, default) 키 없을 때 기본값 반환
  • Map.putIfAbsent(key, value) 없을 때만 삽입
  • List.removeIf(predicate) 조건에 맞는 요소 일괄 삭제
profile
Backend engineer

0개의 댓글