728x90

컬렉션 프레임웍 : 데이터 군을 저장하는 클래스들을 표준화한 설계

컬렉션 프레임웍은 컬렉션, 다수의 데이터를 다루는데 필요한 다양한 클래스들을 제공해준다. 또한 인터페이스와 다형성을 이용한 객체 지향적 설계를 통해 사용법을 익히기에도 편리하고 재사용성이 높은 코드를 작성할 수 있다.

 

컬렉션 프레임웍의 핵심 인터페이스

컬레션 프레임웍에서 컬렉션 데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였다.

1.List : 순서가 있는 데이터 집합. 데이터의 중복을 허용한다.

2.Set : 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않는다.

3.Map : 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합. 순서는 유지되지않으며, 키는 중복을 허용하지 않는다. 값은 중복을 허용한다.

 

인터페이스 List와 Set을 구현한 컬렉션 클래스들은 많은 공통부분이 있어, 공통된 부분을 다시 뽑아 Collection인터페이스로 정의할 수 있었지만 Map인터페이스는 전혀다른 형태로 컬렉션을 다룬다.

Collection인터페이스

List와 Set의 조상 Collection인터페이스의 메소드

boolean add(Object o), boolean addAll(Collection c) : 지정된 객체(o) 또는 Collection(c)의 객체들을 Collection에 추가한다.

void clear() : Collection의 모든 객체를 삭제한다.

boolean contains(Object o) , boolean containsAll(Collection c) : 지정된 객체(o)또는 Collection의 객체들이 Collection에 포함되어있는지 확인한다.

boolean equals(Object o) : 동일한 Collection인지 비교한다.

int hashCode() : Collection의 hash code를 비교한다.

boolean isEmpty() : Collection이 비어있는지 확인한다.

Iterator iterator() : Collection의 Iterator를 얻어서 반환한다.

boolean remove(Object o) : 지정된 객체를 삭제한다.

boolean removeAll(Collection c) : 지정된 Collection에 포함된 객체들을 삭제한다.

boolean retainAll(Collection c) : 지정된 Collection에 포함된 객체만 남기고 다룬 객체들은 Collection에서 삭제한다.

Colection에 변화가 생길경우 true반환 변화 없으경우 false반환

int size() : Collection에 저장된 객체의 개수를 반환한다.

Object[] toArray() : Collection에 저장된 객체배열을 Obejct[]로 반환한다.

Object[] toArray(Object[] a) : 지정된 배열에 Collection의 객체를 저장해서 반환한다.

 

List인터페이스

List인터페이스는 중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현하는데 사용한다.

List인터페이스의 메서드, Collection인터페이스에서부터 상속받은것은 제외

void add(int index, Object element), boolean addAll(int index, Collection c) : 지정된 위치(index)에 객체(element) 또는 컬렉션에 포함된 객체들을 추가한다.

Object get(int index) : 지정된 위치(index)에 있는 객체를 반환한다.

int indexOf(Object o) : 지정된 객체의 위치(index)를 반환한다.

int lastIndexOf(Object o) : 지정된 객체의 위치(index)를 반ㄴ환한다. List의 마지막 요소부터 역방향으로 찾는다.

ListIterator listIterator(), ListIterator listIterator(int index) : List의 객체에 접근할 수 있는 ListIterator를 반환한다.

Object remove(int index) : 지정된 위치(index)에 있는 객체를 삭제하고 삭제된 객체를 반환한다.

Object set(int index, Object element) : 지정된 위치(index)에 객체(element)를 저장한다. 객체를 변경할떄 사용한다.

void sort(Comparator c) : 지정된 비교자(comparator)로 List를 정렬한다.

List subList(int fromIndex, int toIndex) : 지정된 범위에 있는 객체를 반환한다.

 

Set인터페이스

Set인터페이스는 중복을 허용하지 않고 순서도 유지되지않는 컬렉션 클래스를 구현하는데 사용된다.

메서드는 Collection메서드와 일치한다.

 

Map인터페이스

Map인터페이스는 키(key)와 값(value)을 하나의 쌍으로 묶어서 저장하는 컬렉션 클래스를 구현하는데 사용된다. 키는 중복될 수 없지만 값은 중복을 허용한다. 기존에 저장된 데이터와 중복된 키와 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남게된다.

Map 인터페이스 메소드

void clear() : Map의 모든 객체를 삭제한다.

boolean containsKey(Object key) : 지정된 key객체와 일치하는 Map의 key객체가 있는지 확인한다.

boolean containsValue(Object value) : 지정된 value객체와 일치하는 Map의 value객체가 있는지 확인한다.

Object get(Object key) : 지정한 key객체에 대응하는 value객체를 찾아서 반환한다.

Set entrySet() : Map에 저장되어 있는 key-value쌍을 Map.Entry타입의 객체로 저장한 Set으로 반환한다.

boolean equals(Object o) : 동일한 Map인지 비교한다.

int hashCode() : 해시코드를 반환한다.

boolean isEmpty() : Map이 비어있는지 확인한다.

Set keySet() : MAp에 저장된 모든 key객체를 반환한다..

Object put(Object key, Object value) : Map에 value객체를 key객체에 연결(mapping)하여 저장한다. 객체를 삽입할 때 사용한다.

void putAll(Map t) : 지정된 Map의 모든 key-value쌍을 추가한다.

Object remove(Object key) : 지정한 Key객체와 일치하는 kecy-value객체를 삭제한다.

int size() : Map에 저장된 key-value 쌍의 개수를 반환한다.

Collection values() : Map에 저장된 모든 value객체를 반환한다.

 

values()메서드의 반환타입은 Collection이고, keySet()메서드에서는 반환타입이 Set이다. Map인터페이스에서 값(value)은 중복을 허용하기 때문에 Collection타입으로 반환하고, 키(key)는 중복을 허용하지 않기 때문에 Set타입으로 반환한다.

 

728x90

'Programming > JAVA' 카테고리의 다른 글

Stack과 Queue  (0) 2021.07.29
ArrayList LinkedList  (0) 2021.07.29
StringBuffer클래스와 StringBuilder클래스  (0) 2021.07.26
String 클래스  (0) 2021.07.26
Object클래스 메서드  (0) 2021.07.18

+ Recent posts