Collection 인터페이스는 자료구조를 구현한 다양한 클래스들의 공통적인 기능을 약속한 인터페이스입니다. 이는 Collection을 기반으로 구현한 클래스들을 사용하는 방법을 일관화하여 사용하는 개발자의 학습 비용을 줄여주는 역할을 합니다.
Collection 인터페이스를 기반으로 구현한 클래스에는 List와 Set이 있습니다. 그리고 List를 기반으로 파생한 클래스로 Vector, Stack, ArrayList, LinkedList가 있고 Set을 기반으로 파생한 클래스로 StoredSet과 HashSet이 있습니다. 따라서 이러한 클래스들의 사용법의 공통적인 부분은 Collection 인터페이스에 약속하고 있는 것입니다.
다음은 Collection 인터페이스의 코드 내용의 일부입니다. 물론 라이브러리에 만들어진 것이며 개발자가 정의하는 것이 아닙니다.
▷ Collection 인터페이스
public interface Collection { //obj 개체를 추가 public boolean add(Object obj); //col에 보관한 모든 개체를 추가 public boolean addAll(Collection col); //컬렉션을 비움 public void clear(); //obj 개체를 포함 여부 판별 public boolean contains(Object obj); //col에 보관한 모든 개체를 포함 여부 판별 public boolean containsAll(Collection col); //비어있는지 판별 public boolean isEmpty(); //반복자 반환 public iterator iterator(); //obj 개체 삭제 public boolean remove(Object obj); //col에 보관한 개체와 같은 개체들을 제거 public boolean removeAll(Collection col); //col에 보관한 개체와 다른 개체들을 제거 public boolean retainAll(Collection col); //보관한 개체 수 반환 public int size(); //컬렉션에 보관한 개체를 포함하는 배열 개체를 생성하여 반환 public Object[] toArray(); //컬렉션에 보관한 개체를 포함하는 배열 개체를 반환하며 이 때 배열 크기는 arr과 같음 public Object[] toArray(Object[] arr); }