Java에서 컬렉션(Collection)이란 객체의 집합, 그룹을 의미한다.
JCF(Java Collections Framework)
Java 컬렉션 프레임워크는 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다.
데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이며, 이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현된다.
Collection의 일관된 API를 사용하여 Collection 하위의 모든 클래스(ArrayList, Vector, LinkedList 등)를 Collection에서 상속받아 통일된 메서드를 사용하게 된다.
객체 지향 프로그래밍의 추상화의 기본 개념이 구현되어있다.
유용한 데이터 구조 및 알고리즘으로 구성된 Collection API를 사용하여 간단하게 최상의 구현이 가능하며, 프로그램의 성능 또한 향상시킬 수 있다
컬렉션 프레임워크에서는 데이터를 저장하는 자료 구조에 따라 다음과 같은 핵심이 되는 주요 인터페이스를 정의하고 있다.
- List 인터페이스
- Set 인터페이스
- Map 인터페이스
이 중에서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만,
Map 인터페이스의 경우 구조상의 차이로 인해 별도로 정의된다.
Map 인터페이스는 Collection에 포함되지 않으나 Collection으로 분류 해준다.
자바에서 컬렉션 프레임워크를 구성하고 있는 인터페이스 간의 상속 관계는 아래 그림과 같다.
위의 그림에서 <E>
나 <K, V>
라는 것은 컬렉션 프레임워크를 구성하는 모든 클래스가 제네릭으로 표현되어 있음을 알려준다.
자바에서 컬렉션 프레임워크를 구성하고 있는 주요 인터페이스의 간략한 특징은 다음과 같다.
컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스를 컬렉션 클래스(Collection class)라고 하며, 컬렉션 프레임워크의 모든 컬렉션 클래스는 List와 Set, Map 인터페이스 중 하나의 인터페이스를 구현하고 있다.
Collection 인터페이스는 컬렉션을 다루는데 가장 기본적인 동작들을 정의하고, 그것을 메소드로 제공하고 있다.
List와 Set 인터페이스의 많은 공통된 부분을 Collection 인터페이스에서 정의하고, 두 인터페이스는 그것을 상속받는다.
Collection 인터페이스에서 제공하는 주요 메소드는 다음과 같다.