List, Set, Map 등의 다양한 형태가 존재함자바 언어 기반으로 데이터 구조와 관련된 다양한 작업을 쉽게 처리할 수 있는 기본적인 틀을 제공
데이터를 효율적으로 관리하기 위해 표준화된 방법을 제공
일관된 API 제공
→ List, Set, Map 등의 다양한 자료 구조에 대해 동일한 메서드를 사용 가능
→ 예: add(), remove() 등
인터페이스 기반 설계로 유연성을 제공하고, 객체지향적으로 설계되어 있음
→ List, Set, Map 같은 인터페이스를 통해 다양한 구현체로 확장 가능
Collection 인터페이스와 Map 인터페이스로 나뉨List, Set 등의 인터페이스를 포함Collection과는 성격이 달라 분리되어 있음→ List, Set, Map 중 하나의 인터페이스를 상속받아 구현되어 있는 컬렉션 클래스가 많음
iterator()
→ 컬렉션의 첫 번째 요소부터 끝까지 하나씩 순차적으로 탐색할 수 있는 Iterator 객체를 반환
forEach()
→ 함수형 프로그래밍 전용 loop 메서드
List, Queue, Set와 같은 컬렉션 타입의 실질적인 최상위 인터페이스Iterable을 확장하여 iterator가 가능한 컬렉션을 제공| 메서드 | 설명 |
|---|---|
add(E e) | 요소 추가 |
remove(Object o) | 요소 삭제 |
size() | 컬렉션의 크기 반환 |
isEmpty() | 비어 있는지 여부 확인 |
contains(Object o) | 특정 요소 포함 여부 확인 |
clear() | 모든 요소 삭제 |
iterator() | Iterator 객체 반환 |
Collection 인터페이스는 Iterable 인터페이스를 확장(extends)
→ 모든 Collection은 Iterable을 자동 구현
→ 따라서 for-each문 사용 가능
Iterable: 컬렉션을 반복(iteration)할 수 있도록 하는 기능 제공
Collection: 요소의 추가, 삭제, 포함 여부 확인 등 동작 정의
Collection의 하위 인터페이스 | 메서드 | 설명 |
|---|---|
add(E e) | 요소 추가 |
add(int index, E element) | 특정 인덱스에 요소 삽입 |
remove(int index) | 특정 인덱스 요소 삭제 |
get(int index) | 특정 인덱스 요소 반환 |
set(int index, E element) | 특정 인덱스 요소 수정 |
indexOf(Object o) | 특정 요소의 인덱스 반환 |
subList(int fromIndex, int toIndex) | 부분 리스트 반환 |
Collection의 하위 인터페이스 | 메서드 | 설명 |
|---|---|
add(E e) | 요소 추가 (중복 시 추가 안 됨) |
remove(Object o) | 요소 제거 |
contains(Object o) | 요소 존재 여부 확인 |
size() | 요소 수 반환 |
isEmpty() | 비어 있는지 확인 |
clear() | 모든 요소 제거 |
Collection의 하위 인터페이스는 아님 | 메서드 | 설명 |
|---|---|
put(K key, V value) | 값 추가 (동일 키 존재 시 덮어씀) |
get(Object key) | 키에 해당하는 값 반환 |
containsKey(Object key) | 키 존재 여부 확인 |
remove(Object key) | 키 삭제 |
keySet() | 모든 키를 Set 형태로 반환 |
values() | 모든 값을 Collection 형태로 반환 |
entrySet() | 키-값 쌍을 Set 형태로 반환 |
