컬렉션 프레임워크는 객체나 데이터들을 효율적으로 관리(추가, 삭제, 검색, 저장)를 하기 위해 사용되는 라이브러리이다.
데이터들을 효율적으로 관리 하기 위해 사용된다. 예를 들어 배열을 사용하다 보면 여러 비효율적인 문제가 생기는데, 대표적으로 배열의 크기가 생성할 때 결정되며 그 크기가 고정적이기 때문에 크기가 넘어가면 데이터를 저장할 수 없다는 문제점이 발생한다. 또 데이터를 삭제하면 해당 인덱스의 데이터는 비어있어 메모리가 낭비되기도 하는 등 이러한 단점들을 보완하기 위해 사용된다.

컬렉션 프레임워크의 주요 인터페이스로 List, Set, Map이 있다. 이 중 List와 Set 인터페이스는 컬렉션 인터페이스를 상속받고 Map 인터페이스는 구조상의 차이로 인해 별도로 정의된다.
| 인터페이스 | 특징 | 구현 클래스 |
|---|---|---|
| List | 순서가 있고 중복 가능 | ArrayList, Vector, Stack, Linked List 등 |
| Set | 순서가 없고 중복 불가능 | HashSet, TreeSet 등 |
| Map | 키(key)와 값(value)이 한 쌍, 순서가 없고 키는 중복이 불가하고 값은 중복이 가능하다 | HashMap, HashTable, TreeMap 등 |
List와 Set이 포함된 컬렉션 인터페이스에서 제공하는 메서드 이다.
| 메서드 | 타입 | 기능 |
|---|---|---|
| add(Object o) / addAll(Collection c) | boolean | 주어진 객체 / 컬렉션의 객체들을 추가 |
| contains(Object o) / containsAll(Collection c) | boolean | 주어진 객체 / 컬렉션이 저장 되어 있는지 여부 |
| Iterator() | Iterator | 컬렉션의 iterator를 반환 |
| clear() | void | 컬렉션에 저장된 모든 객체를 삭제 |
| equals(Object o) | boolean | 객체 o 와 동일한지 비교 |
| isEmpty() | boolean | 컬렉션이 비어있는지 여부 |
| size() | int | 저장되어 있는 전체 객체 수를 반환 |
| remove(Object o) / removeAll(Collection c) | boolean | 주어진 객체 / 컬렉션을 삭제하고 성공 여부 |