본문 바로가기

Java

컬렉션 프레임웍(collections framework)

출처 - Java의 정석 기초편 (남궁 성)

 

 

1. 컬렉션 프레임웍

- 컬렉션(collection): 여러 객체(데이터)를 모아 놓은 것

- 프레임웍(framwork): 표준화된 프로그래밍 방식 → 생산성↑ 유지보수↑

- 컬렉션 프레임웍: 컬렉션(다수의 객체)을 다루기 위한 표준화된  프로그래밍 방식

- 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스 제공

- 객체란? 다수의 데이터, 객체를 다룬다는 건? 저장, 삭제, 검색, 정렬

- java.util 패키지에 포함

- 컬렉션 클래스: 다수의 데이터를 저장할 수 있는 클래스(Vector, ArrayList, HashSet 등)

 

 

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

- List: 순서 O, 중복 O

- Set: 순서 X, 중복 X

- Map(키-값): 순서 X, 중복(키 X, 값 O)

- Collection: List와 Set 공통부문 조상 인터페이스

 

 

3. Collection인터페이스

- 컬렉션을 다루는데 가장 기본적인 메서드 정의(추가, 삭제, 검색 등)

 

boolean add(Object o) // 객체 추가
boolean addAll(Collection c)
void clear() // 객체 전체 삭제
boolean contains(Object o) // 포함되어 있는지
boolean containsAll(Collection c)
boolean equals(Object o) // 동일한지 비교
int hashCode() // hash code 반환
boolean isEmpty() // 비어있는지 확인
Iterator iterator() // Iterator 반환
boolean remove(Object o) // 객체 삭제
boolean removeAll(Collection c)
boolean retainAll(Collection c) // 지정된 Collection에 포함된 객체만 남기고 삭제
int size() // 저장된 객체 개수 반환
Object[] toArray() // 객체배열(Object[])로 반환
Object[] toArray(Object[] a) // 지정된 배열에 Collection의 객체를 저장해서 반환

 

 

4. List인터페이스

- 순서 O, 중복 O

- Vector(old) ≒ ArrayList(new), LinkedList

 

Collection인터페이스 메서드 제외

void add(int index, Object element) // 지정된 위치(index)에 객체 추가
boolean addAll(int index, Collection c)
Object get(int index) // 객체 반환
int indexOf(Object o) // 순방향
int lastindexOf(Object o) // 역방향
ListIterator listIterator() // List의 객체에 접근할 수 있는 ListIterator 반환
ListIterator listIterator(int index)
Object remove(int index) // 객체 삭제
Object set(int index, Object element) // 객체 저장
void sort(Comparator c) // 지정된 비교자(comparator)로 정렬
List subList(int fromIndex, int toIndex) // 지정된 범위(from~to) 객체 반환

 

 

5. Set인터페이스

- 순서 X, 중복 X

- HashsetTreeSet

- 상속: Set인터페이스 메서드 = Collection인터페이스 메서드

- 집합과 관련된 메서드

 

boolean addAll(Collection c) // 합집합
boolean containsAll(Collection c) // 부분집합
boolean removeAll(Collection c) // 차집합
boolean retainAll(Collection c) // 교집합

 

 

6. Map인터페이스

- 키(key)와 값(value) 쌍으로 저장

- 순서 X, 중복(키 X, 값 O)

- Hashtable(old) ≒ HashMap(new) ← LinkedHashMap, TreeMap

 

void clear() // 모든 객체 삭제
boolean containsKey(Object key) // 일치하는 key객체 있는지
boolean containsValue(Object value) // 일치하는 value객체 있는지
Set entrySet() // key-value Set으로 반환
Set keySet() // 모든 key객체 반환
collection values() // 모든 value객체 반환
boolean equals(Object o) // 동일한 Map인지 비교
Object get(Object key) // 지정한 key객체 대응하는 value객체 반환
int hashcode()
boolean isEmpty()
Object put(Object key, Object value) // 객체 추가
void putAll(Map t)
Object remove(Object key) // 지정한 key객체와 일치하는 key-value객체 삭제
int size()