
java.util 패키지에 포함되어 있음| 인터페이스 | 설명 | 특징 | 대표 구현체 |
List | 순서가 있고 중복 허용 | 인덱스로 접근 가능, 순서 보장 | ArrayList, LinkedList |
Set | 순서 없고 중복 불허 | 고유한 원소 저장, 순서 보장 안 됨 | HashSet, TreeSet |
Map | 키와 값 쌍으로 저장 | 키는 중복 불가, 값은 중복 가능 | HashMap, TreeMap, LinkedHashMap |
ArrayList: 배열 기반, 빠른 조회, 느린 삽입/삭제LinkedList: 노드 기반, 빠른 삽입/삭제, 느린 조회add(E e); // 추가
get(int index); // 조회
remove(int index); // 삭제
size(); // 크기 반환
contains(Object o); // 포함 여부add(E e); // 추가
get(int index); // 조회
remove(int index); // 삭제
size(); // 크기 반환
contains(Object o); // 포함 여부LinkedHashSet은 삽입 순서 유지)HashSet: 해시 기반, 빠른 탐색TreeSet: 정렬된 상태 유지 (Comparable 또는 Comparator 필요)add(E e); // 추가 (중복 시 false 반환)
remove(Object o); // 삭제
contains(Object o); // 포함 여부add(E e); // 추가 (중복 시 false 반환)
remove(Object o); // 삭제
contains(Object o); // 포함 여부HashMap: 해시 기반, 빠른 조회TreeMap: 키 정렬 유지LinkedHashMap: 삽입 순서 유지put(K key, V value); // 저장/수정
get(Object key); // 조회
remove(Object key); // 삭제
containsKey(Object key); // 키 포함 여부
keySet(); // 키 집합 반환
values(); // 값 집합 반환
entrySet(); // 키-값 쌍 반환put(K key, V value); // 저장/수정
get(Object key); // 조회
remove(Object key); // 삭제
containsKey(Object key); // 키 포함 여부
keySet(); // 키 집합 반환
values(); // 값 집합 반환
entrySet(); // 키-값 쌍 반환Iterator<E> it = collection.iterator();
while (it.hasNext()) {
E element = it.next();
// 처리
}Iterator<E> it = collection.iterator();
while (it.hasNext()) {
E element = it.next();
// 처리
}for (E element : collection) {
// 처리
}for (E element : collection) {
// 처리
}List<String> list = new ArrayList<>();
list.add("Hello");
String s = list.get(0); // 캐스팅 불필요List<String> list = new ArrayList<>();
list.add("Hello");
String s = list.get(0); // 캐스팅 불필요| 구분 | 배열(Array) | 컬렉션(Collection) |
| 크기 | 고정 | 가변 (동적 크기 조절 가능) |
| 타입 | 기본형 및 객체 모두 가능 | 객체만 저장 가능 |
| 기능 | 단순 저장 및 접근 | 정렬, 검색, 삽입, 삭제 등 다양한 기능 제공 |
| 편의성 | 단순 | 다양한 인터페이스와 메서드 제공 |
Collections.synchronizedList(), CopyOnWriteArrayList 등 활용parallelStream())으로 대량 데이터 병렬 처리 가능