[자바의 정석] Collection Framework
1. 컬렉션 프레임웍의 핵심 인터페이스
Collection Framework에서는 컬렉션(데이터 그룹)을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였다. 그리고 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의 하였다.
1) List는 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다.
구현클래스 : ArrayList, LinkedList, Stack, Vector 등
2) Set 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않는다.
구현클래스 : HashSet, TreeSet 등
3) 키와 값의 쌍으로 이루어진 데이터의 집합. 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.
구현클래스 : HashMap, TreeMap, Hashtable, Properties 등
컬렉션 프레임웍의 모든 컬렉션 클래스들은 List, Set, Map 중의 하나를 구현하고 있으며, 구현한 인터페이스의 이름이 클래스의 이름에 포함되어 잇어서 이름만으로도 클래스의 특징을 쉽게 알 수 있도록 되어있다. 그러나 Vector, Stack, Hashtable, Properties와 같은 클래스들은 컬렉션 프레임웍이 만들어지기 이전부터 존재하던 것이기 때문에 컬렉션 프레임웍의 명명법을 따르지 않는다. Vector나 Hashtable과 같은 기존의 컬렉션 클래스들은 호환을 위해, 설계를 변경해서 남겨두었지만 가능하면 사용하지 않는 것이 좋다. 그 대신 새로 추가된 ArrayList와 HashMap을 사용하자.
1) ArrayList : 내부적으로 array를 사용하여 구현됨. 크기를 지정하고 ㅁ