Java 컬렉션 프레임워크: 핵심 인터페이스, 구현체, 실전 활용
Java 컬렉션 프레임워크
Java 강력한 컬렉션 프레임워크를 구성하는 필수 인터페이스와 클래스 발견, 현대 Java 개발 초석인 이유 학습.
Java 컬렉션 프레임워크는 공통 데이터 구조(배열, 연결 리스트, 해시 테이블 등) 구현체인 풍부한 인터페이스와 구체적 클래스 세트, 검색/정렬/조작 효율적 알고리즘 제공.
예: LinkedList 클래스가 이중 연결 리스트 구현, 양끝 상수 시간 삽입/삭제 가능.
컬렉션 프레임워크 핵심 인터페이스
이 인터페이스들은 컬렉션 타입 계약 정의, 데이터 조작 위한 다양한 유틸리티 메서드 노출.

다음 섹션에서 각 인터페이스, 하위 인터페이스, 구체적 구현 클래스 살펴보기.
루트: Collection 인터페이스
Collection 인터페이스는 프레임워크 계층 최상위 인터페이스. Java가 Collection 직접 구현체 제공 안 하지만 하위 인터페이스(List, Set, Queue)가 ArrayList, HashSet, LinkedList 같은 클래스로 구현됨.
컬렉션 프레임워크 vs Collection 인터페이스
전체 프레임워크를 Collection 인터페이스와 혼동 흔함. 프레임워크는 Map과 Iterator 인터페이스도 포함, 각자 하위 인터페이스와 구현체 보유.
Collection 하위 인터페이스
각 하위 인터페이스 Collection 모든 메서드 상속, 특화 행동 추가:
List 인터페이스
List 인터페이스는 인덱스 접근 허용, 중복 요소 허용 순서 있는 시퀀스 표현. 구현체: ArrayList, LinkedList, Vector. List 인터페이스 더 알아보기.
Set 인터페이스
Set은 보장된 순서 없이 고유 요소 저장. 인기 구현체: HashSet, LinkedHashSet, TreeSet. Set 인터페이스 탐구.
Queue 인터페이스
Queue 인터페이스는 FIFO(선입선출) 행동 정의, 버퍼링과 스케줄링에 이상적. 구현체: LinkedList, PriorityQueue, ArrayDeque. Queue 인터페이스 발견.
Map 인터페이스
컬렉션 인터페이스들과 달리 Map은 키/값 쌍으로 데이터 저장. 키 고유, 각 키 단일 값 매핑. HashMap, LinkedHashMap, TreeMap 등 구현체 다양한 성능 특성 제공. Map 인터페이스 읽기.
이터레이터 지원
Iterator 인터페이스 컬렉션 순차 순회 표준 방식 제공, 순회 중 안전한 요소 제거 가능. 모든 컬렉션 타입 iterator() 메서드 노출. Iterator 학습.
왜 컬렉션 프레임워크 사용?
- 보일러플레이트 없음 – 내장 구현체로 커스텀 데이터 구조 작성 불필요.
- 성능 최적화 – 프레임워크 클래스 속도와 메모리 효율 고도 튜닝.
- 타입 안전성 – 제네릭으로 컴파일 타임 타입 검사, 런타임 에러 감소.
- 풍부한 API –
Collections.sort(), Collections.reverse() 등 유틸리티 메서드 다수 일반 작업 단순화.
적절한 인터페이스 선택으로 코드 간소화: 고유성엔 Set, 키/값 조회엔 Map, 인덱스 접근엔 ArrayList.
실전 예제: ArrayList 사용
ArrayList 클래스는 List 인터페이스 구현 가변 배열 제공. 빠른 랜덤 접근, 리스트 끝 효율적 추가 제공.
// Java Collections framework는 java.util 패키지 import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); } }
출력:
ArrayList: [Dog, Cat, Horse]
향후 레슨에서 각 인터페이스와 클래스 심층 파고들어 고급 패턴과 성능 팁 소개 예정.