컬렉션: 여러 객체(데이터)를 모아 놓은 것을 의미
프레임워크: 표준화, 정형화된 체계적인 프로그래밍 방식
컬렉션 프레임워크
- 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식
- 배열의 문제점을 해결하고 자료구조를 바탕으로 객체(데이터)를 효율적으로 관리(추가, 삭제, 검색, 저장)할 수 있도록 한 것
- 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공
컬렉션 프레임워크 핵심 인터페이스
- List: 순서가 있는 데이터의 집합, 데이터 중복 허용
- Set: 순서가 없는 데이터의 집합, 데이터 중복 허용하지 않음
- Map: 키(key)와 값(Value)의 쌍(Pair)으로 이루어진 데이터의 집합, 순서는 없으며, 키는 중복을 허용하지 않고 값은 중복을 허용
Map 인터페이스는 구조상의 차이(Key-Value)로 인해 Collection 인터페이스를 상속받지 않고 별도로 정의된다.
![](https://velog.velcdn.com/images%2Fjyo925%2Fpost%2Fa7d1b449-4993-4e35-ac26-dbdda662effb%2Fimage.png)
컬렉션 프레임워크에 대한 더 자세한 설명은 아래 블로그 참고
Iterator, ListIterator, Enumeration
- 컬렉션에 저장된 데이터에 접근하는데 사용되는 인터페이스
- 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것
- 컬렉션에 iterator()를 호출해서 Iterator을 구현한 객체를 얻어서 사용한다. Collection 인터페이스 내에 iterator()메소드가 있다.
- ListIteration(양방향)은 Iteraton(단방향)을 향상시킨 것
- Enumeraton은 Iteration 구버전
List list = new ArrayList();
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
- 메서드
- boolean hasNext()
- Object next()
- void remove()
- void forEachRemaining
- Map은 Collection 인터페이스를 구현받지 않아서 iterator()가 없으므로 keySet(), entrySet(), values()를 통해서 iterator()을 호출할 수 있다.