반응형

# 컬렉션 프레임웍

  • 컬렉션 (Collection) : 데이터 군을 저장하는 클랙스들을 표준화한 설계. (데이터 그룹)
  • 프레임웍 : 표준화된 프로그래밍 방식을 의미.
  • JDK 1.2 부터 컬렉션 프레임웍이 등장, 다양한 종류의 컬렉션 클래스가 추가되고 체게화 됨.
  • 장점 : 컬렉션 프레임웍은 다수의 데이터를 다루는데 필요한 많은 다양한 클래스들을 제공, 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 사용법을 익히기 쉽고 재사용성이 높은 코드를 작성할 수 있다.

## 핵심 인터페이스

  • 컬렉션 프레임웍에서 컬렉션 데이터 그룹을 크게 3가지로 타입이 존재한다고 인식, 3개의 인터페이스를 정의하였고 인터페이스 List 와 Set 의 공통 부분을 다시 뽑아 새로운 인터페이스인 Collection 을 추가로 정의.
  • 컬렉션 프레임웍 핵심 인터페이스의 상속 계층도 상 List 와 Set 은 Collection 에 상속되지만, Map 인터페이스의 경우 다른 형태로 컬렉션을 다루기 때문에 같은 상속 계층도에 포함되지 못했다.

## 핵심 인터페이스의 특징 (List / Set / Map)

List

  • 순서가 있는 데이터의 집합 (데이터 중복 허용)
  • 구현클래스 : ArrayList / LinkedList / Stack  Vector 등 ..

Set

  • 순서를 유지하지 않는 데이터의 집합 (데이터 중복 X)
  • 구현클래스 : HashSet / TreeSet 등 ..

Map

  • 키(Key) 와 값(Value) 의 쌍으로 이루어진 데이터 집합, 순서를 유지하지 않는다. (키 중복 X / 값 중복 허용)
  • 구현클래스 : HashMap / TreeMap / Hashtable / Properties 등 ..

## Collection 인터페이스

메서드 설명
boolean add (Object o)
bollean addAll (Collection c)
지정된 객체의 객체들을 Collection 에 추가
void clear () Collection 의 모든 객체를 삭제
boolean contains (Object o)
boolean contains (Collection c)
지정된 객체들이 Collection 에 포함되어 있는지 확인
boolean equals (Object o) 동일한 Collection 인지 비교
int hashCode () Collection 의 hash code 반환
boolean isEmpty () Collection 이 비어있는지 확인
iterator iterator () Collection 의 iterator 를 반환
boolean remove (Object o) 지정된 Collection 에 포함된 객체들을 삭제
boolean removeAll (Collection c) 지정된 Collection 에 포함된 객체만 남기고 다른 객체들은 Collection 에서 삭제. (작업으로 Collection 에 변화가 있으면 true / 없으면 false 반환)
int size () Collection 에 저장된 객체의 개수 반환
Object [] toArray () Collection 에 저장된 객체를 객체 배열(Object []) 로 반환
Object [] toArray (Object [] a) 지정된 배열에 Collection 의 객체를 저장해서 반환

## List 인터페이스

  • 중복 허용
  • 저장 순서 유지
메서드 설명
void add (int index, Object element)
boolean addAll (int index, Collection c)
지정된 위치에 객체(들)를 추가
Object get(int index) 지정된 위치에 있는 객체 반환
int indexOf (Object o) 지정된 객체의 위치를 반환
(List의 첫 번째 요소부터 순방향으로 찾음)
int lastIndexOf (Object o) 지정된 객체의 위치를 반환
(List의 마지막 요소부터 역방향으로 찾음)
ListIterator listIterator ()
ListIterator listIterator (int index)
List 의 객체에 접근할 수 있는 ListIterator 를 반환
Object remove (int index) 지정된 위치에 있는 객체를 삭제하고 삭제된 객체 반환
Object set (int index, Object element) 지정된 위치에 객체를 저장
void sort (Comparator c) 지정된 비교자(Comparator)로 List 정렬
List subList (int fromIndex, int toIndex) 지정된 범위에 있는 객체 반환

## Set 인터페이스

  • 중복 허용 X
  • 저장 순서 유지 X
  • 구현 클래스 : HashSet / TreeSet 등 ..

## Map 인터페이스

  • 값만 중복 허용 (키는 중복 X)
  • 기존에 저장된 데이터와 중복된 키와 값을 저장 시 기존의 값은 없어지고 마지막에 저장된 값이 남게 됨.
  • 구현 클래스 : Hashtable / HashMap / LinkedHashMap / SortedMap / TreeMap 등 ..
메서드 설명
void clear () Map 의 모든 객체 삭제
boolean containsKey (Object key) 지정된 key 객체와 일치하는 Map 의 key 객체가 있는지 확인
boolean containsValue (Object value) 지정된 value 객체와 일치하는 Map 의 value 객체가 있는지 확인
Set entrySet () Map 에 저장된 key-value 쌍을 Map.Entry 타입의 객체로 저장한 Set으로 반환
boolean equals (Object o) 동일한 Map 인지 비교
Object get (Object key) 지정한 key 객체에 대응하는 value 객체를 찾아서 반환
int hashCode () 해시코드 반환
boolean isEmpty () Map 이 비어있는지 확인
Set keySet () Map 에 저장된 모든 key 객체를 반환
Object put (Object key, Object value) Map 에 value 객체를 key 객체에 연결하여 저장
void putAll (Map t) 지정된 Map 의 모든 key-value 쌍을 추가
Object remove (Object key) 지정한 key 객체와 일치하는 key-value 객체 삭제
int size () Map 에 저장된 key-value 쌍의 개수 반환
Collection values () Map 에 저장된 모든 value 객체 반환

## Map.Entry 인터페이스

  • Map 인터페이스의 내부 인터페이스 (inner interface)
  • Map 에 저장되는 key-value 쌍을 다루기 위해 내부적으로 Entry 인터페이스 정의
메서드 설명
boolean equals (Object o) 동일한 Entry 인지 비교
Object getKey () Entry 의 key 객체 반환
Object getValue () Entry 의 value 객체 반환
int hashCode () Entry 의 해시코드 반환
Object setValue (Object value) Entry 의 value 객체를 지정된 객체로 변경

 

 

반응형

+ Recent posts