데이터 군을 저장하는 클래스들을 표준화한 설계
컬렉션 Collection : 다수의 데이터, 데이트 그룹
프레임웍 Framework : 표준화된 프로그래밍 방식
Vector, Hashtable, Properties 같은 컬렉션 클래스, 다수의 데이터를 저장할 수 있는 클래스들을 서로 다른 각자의 방식으로 처리해야 했으나, 컬렉션 프레임웍이 등장하며 다양한 종류의 컬렉션 클래스가 추가, 모든 컬렉션 클래스를 표준화된 방식으로 다룰 수 있도록 체계화됨
컬렉션 데이터 그룹 크게 3가지 타입이 존재한다고 인식, 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스
List , Set -> Collection
Map
List : 순서가 있는 데이터의 집합, 중복 허용 : ArrayList, LinkedList, Stack, Vector
Set : 순서를 유지하지 않는 데이터의 집합, 중복 허용 안됨 : HashSet, TreeSet
Map : 키와 값의 쌍으로 이루어진 데이터 집합, 순서 유지 안됨, 키는 중복 허용 안됨, 값은 중복 가능 : HashMap, TreeMap, HashTable, Properties 등
컬렉션 프레임워크의 모든 컬렉션 클래스들은 List, Set, Map 중의 하나를 구현하고 있고 인터페이스 이름이 클래스 이름에 포함되어 있어
Vector, Stack, Hashtable, Properties 같은 클래스들은 컬렉션 프레임웤이 만들어지기 전부터 있던거라 명명법 따르지 않음
Object > Abstract Collection > Abstract List > Vector
Collection > List > Vector
Collection 인터페이스는 컬렉션 클래스에 저장된 데이터를 읽고 추가하고 삭제하는 컬렉션을 다루는데 가장 기본적인 메서드 정의
add, addAll : 지정된 객체/Collection 객체를 컬렉션에 추가
clear() : 컬렉션의 모든 객체 삭제
contains, containsAll : 지정된 객체/Collection 객체가 컬렉션에 포함되어있는지 확인
equals() : 동일한 컬렉션인지 비교
hashCode : Collection의 hash code 반환
isEmpty()
iterator : Collection의 iterator 얻어서 반환
remove() 지정된 객체 삭제
removeAll(c) : 지정된 컬렉션에 포함된 객체 삭제
retainAll(c) : 지정된 컬렉션에 포함된 객체만 남기고 나머지 삭제, 이 작업으로 컬렉션에 변화가 생기면 true
size() : 컬렉션에 저장된 객체 개수 반환
toArray() : 컬렉션에 저장된 객체를 객체배열로 반환
List 인터페이스 : 중복 허용 , 저장 순서 유지
add addAll get(index) indexof(Object) remove, set(index, element), sort(comparator), subList(from to)
- Vector, Stack, ArrayList, LinkedList
Set 인터페이스 : 중복 허용안됨, 저장 순서 유지 안됨
HashSet, SortedSet, TreeSet
Map 인터페이스 : 키는 중복 안됨
HashTable, HashMap, LinkedHashMap, SortedMap, TreeMap
Map.Entry 인터페이스 : Map 인터페이스 내부 인터페이스
보다 객체지향적으로 설계하도록 유도하기 위한 것, Map 인터페이스를 구현하는 클래스에서는 Map.Entity 인터페이스 함께 구현해야 함
ㅔ