컬렉션 프레임웍 (Collections Framework) ?
- 데이터 군을 저장하는 클래스들을 표준화한 설계
- 다수의 데이터(=데이터 그룹)을 표준화된 프로그래밍 방식
- JDK1.2 부터 컬렉션 프레임웍이 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고, 모든 컬렉션 클래스를 표준화된 방식으로 다룰수 있도록 체계화되었다.
컬렉션 프레임웍에서는 컬렉션 데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고, 3개의 인터페이스를 정의하였다
-> List / Set / Map
- List와 Set의 공통적인 부분을 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다.
* 컬렉션 프레임웍의 핵심 인터페이스와 특징
List | 순서가 있는 데이터 집합. 데이터의 중복을 허용한다. ex) ArrayList , LinkedList, Stack, Vector 등 |
Set | 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않는다. ex) HashSet, TreeSet 등 |
Map | 키(Key)와 값(Value)의 쌍으로 이루어진 데이터의 집합. 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다. ex) HashMap, TreeMap, HastTable, Properties 등 |
- 컬렉션 프레임웍의 모든 컬렉션 클래스들은 List, Set, Map 중의 하나를 구현하고 있다.
- Vector나 HashTable 같은 기존의 컬렉션 클래스들은 호환을 위해, 설계를 변경해서 남겨두었지만 가능하면 사용하지 않는 것이 좋다. 그 대신 새로 추가된 ArrayList나 HashMap을 사용하자.
Collection 인터페이스
- List와 Set의 조상인 Collection 인터페이스에는 다음과 같은 메서드들이 정의되어 있다.
- boolean add(Object o) : 지정된 객체를 Collection에 추가한다.
- boolean addAll(Collection c) : 지정된 Collection c 의 객체를 Collection에 추가한다.
- void clear() : Collection의 모든 객체를 삭제한다.
- boolean contains(Object o) : 지정된 객체가 Collection에 포함되는지 확인한다.
- boolean containsAll(Collection c) :
- boolean equals(Object o) : 동일한 Collection인지 비교한다.
- int hasCode()
- boolean isEmpty()
- Iterator iterator()
- boolean remove(Object o) / boolean removeAll(Collection c)
- boolean retainAll(Collection c) : 지정된 Collection에 포함된 객체만을 남기고 다른 객체들은 Collection 에서 삭제한다. 이 작업으로 Collection에 변화가 있으면 true, 그렇지 않으면 false를 반환한다.
- int size()
- Object[] toArray() / Object[] toArray(Object[] a)
List 인터페이스
- 중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현하는데 사용된다.
- ArrayList, LinkedList, Vector, Stack 이 있다.
- void add(int index, Object element) / boolean addAll(int index, Collection c)
- Object get(int index) : 지정된 위치 (index)에 있는 객체를 반환한다.
- int indexOf(Object o) : 지정된 객체의 위치(index)를 반환한다. 첫번째 요소부터 순방향으로 찾는다.
- int lastIndexOf(Object o) : 지정된 객체의 위치(index)를 반환한다. 마지막 요소부터 역방향으로 찾는다.
- ListIterator listlterator()
- Object remove(int index)
- Object set(int index, Object element) : 지정된 위치 index 에 객체 (element)를 저장한다.
- void sort(Comparator c) : 지정된 비교자를 List로 정렬한다.
- List subList(int fromIndex, int toIndex)
Set 인터페이스
- 중복을 허용하지 않고, 저장순서가 유지되는 컬렉션 클래스를 구현하는데 사용된다.
- Set인터페이스를 구현한 클래스로는 HashSet, TreeSet 등이 있다.
Map 인터페이스
- Key와 값(Value)을 하나로 쌍으로 묶어서 저장하는 컬렉션 클래스를 구현하는ㄷ에 사용된다.
- 키는 중복될 수 없지만 값은 중복을 허용한다. 기존에 저장된 데이터와 중복된 키와 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남게된다.
- void clear()
- boolean containsKey(Object key)
- boolean containsValue(Object value)
- Set entrySet()
- boolean equals(Object o)
- Object get(Object key)
- int hashCode()
- boolean isEmpty()
- Set keySet()
- Object put(Object key, Object value)
- void putAll(Map t)
- Object remove(Object key)
- int size()
- Collection values()
'JAVA > JAVA 기본정리' 카테고리의 다른 글
HashMap (0) | 2022.05.09 |
---|---|
ArrayList : 저장 순서가 유지되고 중복을 허용하는 컬렉션 클래스 (0) | 2022.05.08 |
생성자에서 다른 생성자 호출하기/ 참조변수 this와 생성자 this() (0) | 2022.04.26 |
생성자 ( Constructor) / 기본생성자/ 매개변수가 있는 생성자 (0) | 2022.04.25 |
오버로딩 (overloading) / 가변인자(varargs) : 매개변수 개수를 동적으로 사용할 수 있는 기능 (0) | 2022.04.25 |