컬렉션 프레임워크
- 자바에서 컬렉션 프레임워크란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화 된 방법을 제공하는 클래스들의 모임을 의미한다.
- 즉, 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 미리 구현해 놓은 것이다.
❓ 프레임 워크
- 프레임 워크(Framework)란 프로그래머들이 쓸 수 있도록 "잘 정의 된 클래스들의 모임"을 말한다.
- 프레임 워크는 관련 클래스 정의에 적용되는 설계원칙 또는 구조가 존재한다.
❓ 자료구조와 알고리즘
- 자료구조는 데이터의 탐색, 삭제 등 다양한 측면을 고려한 데이터의 효율적인 저장 방법을 연구하는 학문이다.
- 알고리즘은 저장된 데이터의 일부 또는 전체를 대상으로 각종 가공 및 처리의의 방법을 연구하는 학문이다.
- 대표적인 자료구조 : 리스트(List), 스택(Stack), 큐(Queue), 트리(Tree), 해쉬(Hash)
대표적인 알고리즘 : 버블 정렬(Bubble Sort), 퀵 정렬(Quick Sort), 이진 탐색(Binary Search)
컬렉션 구조
컬렉션 프레임워크의 클래스와 구현 인터페이스는 아래와 같다.
컬렉션 인터페이스
Iterator 인터페이스를 상속한 Collection은 가장 기본이 되는 인터페이스이다.
메소드 | 설명 |
boolean add(E e) | 해당 컬렉션(collection)에 전달된 요소를 추가 |
void clear() | 해당 컬렉션의 모든 요소를 제거 |
boolean contains(Object o) | 해당 컬렉션이 전달된 객체를 포함하고 있는지를 확인 |
boolean equals(Object o) | 해당 컬렉션과 전달된 객체가 같은지를 확인 |
boolean isEmpty() | 해당 컬렉션이 비어있는지를 확인 |
Iterator<E> iterator() | 해당 컬렉션의 반복자(iterator)를 반환 |
boolean remove(Object o) | 해당 컬렉션에서 전달된 객체를 제거 |
int size() | 해당 컬렉션의 요소의 총 개수를 반환 |
Object[] toArray() | 해당 컬렉션의 모든 요소를 Object 타입의 배열로 반환 |
컬렉션 하위 인터페이스
- List, Set, Queue 인터페이스는 모두 Collection 인터페이스를 상속하지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의된다.
- 컬렉션 프레임워크를 구성하는 모든 클래스는 제네릭으로 표현되어있다.
- 어떤 인터페이스를 구현하냐에 따라 인스턴스를 저장, 삭제, 참조하는 방법이 결정된다.
컬렉션 클래스
이때 컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스를 컬렉션 클래스(collection class)라 한다.
인터페이스 | 설명 | 구현 클래스 |
List<E> | 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용함 |
ArrayList, LinkedList |
Set<E> | 순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않음 |
HashSet, TreeSet |
Map<K, V> | 키(Key)와 값(Value)의 한 쌍으로 이루어진 데이터의 집합으로, 순서가 없고, 키는 중복을 허용하지 않지만 값은 중복이 가능 |
HashMap, TreeMap, Hashtable |
Reference
http://www.tcpschool.com/java/java_collectionFramework_list
https://bangu4.tistory.com/194
'☕ Java > 이론' 카테고리의 다른 글
[Java] Queue 컬렉션 클래스 (0) | 2022.01.25 |
---|---|
[Java] Set 컬렉션 클래스 (0) | 2022.01.25 |
[Java] List 컬렉션 클래스 (0) | 2022.01.25 |
[Java] Map 컬렉션 클래스 (0) | 2022.01.25 |
[Java] 제네릭3 (와일드 카드) (0) | 2022.01.17 |
[Java] 제네릭2 (상속, 제네릭 인터페이스) (0) | 2022.01.14 |
[Java] 제네릭1 (제네릭 클래스, 제네릭 메소드) (0) | 2022.01.13 |
[Java] Arrays 클래스 (0) | 2022.01.12 |