컬렉션(collection)
다수의 객체를 저장해두고 필요할 때마다 꺼내서 사용하는 경우 가장 간단한 것은 배열을 이용하는 것이다. 배열은 쉽게 생성하고 사용할 수 있지만, 저장할 객체 수가 배열을 생성할 때 결정되기 때문에 불특정다수의 객체를 저장하기에는 문제가 있다. 또, 객체를 삭제했을 때 해당 인덱스가 비게 되어서 새로운 객체를 저장하려면 어디가 비어 있는지 확인하는 코드도 필요하다.
자바는 배열의 이러한 문제점을 해결하고, 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와 클래스들을 포함시켜 놓았다. 이들을 총칭해서 컬렉션 프레임워크(Collection Framework) 라고 부른다.
컬렉션은 각 사용용도에 따라서 크게 List, Set, Map으로 나눌 수 있다.
Collection 인터페이스의 특징
인터페이스 |
구현클래스 |
특징 |
Set |
HashSet TreeSet |
순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다. |
List |
LinkedList Vector ArrayList |
순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다. |
Map |
Hashtable HashMap TreeMap |
키(Key), 값(Value)의 쌍으로 이루어진 데이터의 집합으로 순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다. |
참고
1. 책 - 이것이 자바다 신용권의 Java 프로그래밍 정복