▶ 컬렉션
- 컬렉션(Collection) : 자바에서 자료 구조를 구현한 클래스들을 칭하는 용어이다.
- 자료 구조(Data Structure) : 자료를 저장하기 위한 구조이다.
- 대부분의 프로그램은 자료를 저장하여야 하고 따라서 어떤 자료 구조를 사용할 것인지 결정하여야 한다.
- 많이 사용되는 자료 구조로는 리스트(list), 스택(stack), 큐(queue), 집합(set), 해쉬 테이블(hash table) 등이 있다.
▶ 컬렉션의 종류
- 자바는 “컬렉션 인터페이스”와 “컬렉션 클래스“로 나누어서 제공한다.
- 컬렉션 인터페이스를 구현한 클래스도 함께 제공하므로 간단히 사용하거나 각각 필요에 맞추어 인터페이스를 자신의 클래스로 구현할 수도 있다.
- 컬렉션 인터페이스와 컬렉션 클래스는 모두 java.util 패키지에 포함되어 있다.
- 컬렉션 라이브러리들은 모두 “제네릭 기능을 지원”한다.
- 아래는 컬렉션 인터페이스를 간단히 설명한 것이다.
인터페이스 |
설명 |
Collection |
모든 자료 구조의 부모 인터페이스로서 객체의 모임을 나타낸다. |
Set |
집합을 나타내는 자료 구조로, 중복된 원소를 가지지 않는다. |
List |
순서가 있는 자료 구조로, 중복된 원소를 가질 수 있다. |
Map |
키와 값들이 연관되어 있는 사전과 같은 자료 구조이다. |
Queue |
FIFO(First-In-First-Out) 방식으로 들어온 순서대로 내보내는 자료 구조이다. |
- 자바 버전 1.2이전에는 Vector, Stack, HashTable, Bitset, Enumberation 클래스만 제공하였다.
- 자바 버전 1.2이후에는 위의 기재한 클래스 외에 다양한 클래스를 제공되며, 인터페이스와 구현을 분리하였다.
▶ Collection 인터페이스
[인터페이스의 계층 구조]
- 모든 컬렉션 인터페이스의 부모 인터페이스에 해당된다.
- 즉, 모든 컬렉션 클래스들이 Collection 인터페이스를 구현하고 있으므로 Collection에 들어 있는 메소드들은 거의 대부분 컬렉션 클래스에서 사용할 수 있다.
- Collection 인터페이스가 제공하는 메소드
기본연산 | int size() | 원소의 개수 반환 |
boolean isEmpty() | 비어있으면 true를 반환 | |
boolean contains(Object obj) | 해당 객체를 포함하고 있으면 true를 반환 | |
boolean add(E element) | 원소 추가 | |
boolean remove(Object obj) | 원소(객체) 삭제 | |
Iterator<E> iterator() | 원소를 순서대로 방문한다. | |
벌크연산 | boolean addAll(Collection<? extends E> c) | c에 있는 모든 원소 추가 |
boolean containsAll(Collection<?> c) | c에 있는 모든 원소가 포함되어 있으면 true | |
boolean removeAll(Collection<?> c) | c에 있는 모든 원소 삭제 | |
void clear() | 모든 원소 삭제 | |
배열연산 | Object[] toArray() | 컬렉션을 Object 타입의 배열로 변환 |
<T> T[] toArray(T[] a) | 컬렉션을 해당 타입의 배열로 변환 |
'Programming Language > JAVA' 카테고리의 다른 글
39. Set, HashSet, TreeSet, LinkedHashSet - 집합 (0) | 2017.07.24 |
---|---|
38. List interface, ArrayList, LinkedList, Vector - 리스트 인터페이스 (0) | 2017.07.23 |
36. Generic - 제네릭 클래스, 제네릭 프로그래밍 (9) | 2017.07.23 |
35. Exception, try-catch-finally - 예외, 예외 처리 (0) | 2017.07.23 |
34. Package - 패키지 (0) | 2017.07.23 |