홈 › 중급 › 05 / 9

컬렉션 프레임워크 딥다이브

섹션 7진행 0 / 9

7. 정리

  • ArrayList는 1.5배 확장하는 동적 배열. 인덱스 접근 O(1), 중간 삽입 O(n). LinkedList는 캐시 비친화적이라 실무에서 거의 쓰지 않으며, 큐/스택은 ArrayDeque.
  • HashMap은 hashCode로 버킷을 찾고 equals로 키를 비교한다. 로드 팩터 0.75 초과 시 2배 확장, 버킷 리스트 8 초과 시 트리화. HashSet은 값 없는 HashMap.
  • 순서: HashMap 없음, LinkedHashMap 삽입/접근 순서(LRU 캐시), TreeMap 키 정렬(범위 검색 O(log n)).
  • 순회 중 구조 변경은 ConcurrentModificationException. Iterator.remove, removeIf, 복사본 순회로 해결.
  • 키는 불변 객체(record, String)로, 반환은 List.copyOf로 방어적 복사, 정렬은 Comparator.comparing().thenComparing() 조합.

다음 레슨 06. 제네릭에서는 이 컬렉션들이 어떻게 List<Order>처럼 타입 안전하게 동작하는지, 와일드카드와 타입 소거의 원리를 다룬다.