Formoat's Open Blog
컬렉션 프레임워크 (Collection Framework) 본문
2019/09/04 - [Java] - 컬렉션 - List
2019/09/04 - [Java] - 컬렉션 - Set
2019/09/04 - [Java] - 컬렉션 - Map
2019/09/04 - [Java] - 컬렉션 - Tree
2019/09/04 - [Java] - 컬렉션 - Stack, Queue
1. 컬렉션 프레임워크 란?
1) 다수의 데이터(객체)를 보다 쉽고 효과적으로 처리할 수 있는 클래스의 집합/라이브러리
2) 크게잡아 List, Set, Map 3가지 인터페이스로 정의되어있고 이를 상속, 구현하는 클래스, 인터페이스가 있다.
3) 기존의 배열이 가지고 있던 문제점을 해결하기 위해 만들어졌다.
# 배열이 가지고 있던 문제점
(1) 배열 생성시 배열의 크기를 정해야 하는데 크기가 특정되지 않은 데이터를 저장해야 할 경우 곤란함.
(2) 배열의 요소를 삭제할 경우 삭제된 요소의 인덱스가 비어지게되고 빈 공간을 체크해야하는 번거로움이 있음.
# 주요 인터페이스
(1) List : 순서가 있는 데이터의 집합으로 데이터의 중복 저장이 가능
(2) Set : 순서가 없는 데이터의 집합으로 데이터의 중복 저장이 불가능
(3) Map : 키와 값의 한 쌍으로 구성되는 집합으로 순서가 없고, 키는 중복 불가/값은 중복 가능
2. Collection 인터페이스
List, Set 인터페이스의 많은 공통된 부분을 Collection 인터페이스에서 정의하고 두 인터페이스는 그것을 상속 받는다.
Collection 인터페이스의 메소드는 아래와 같다.
Method | Remarks |
boolean add(E e) | 해당 컬렉션에 전달된 요소를 추가 |
void clear() | 해당 컬렉션의 모든 요소를 제거 |
boolean contains(Object o) | 해당 컬렉션에 전달된 객체를 포함하고 있는지 확인 |
boolean equals(Obejct o) | 해당 컬렉션과 전달된 객체가 같은지 확인 |
boolean isEmpty() | 해당 컬렉션이 비어있는지 확인 |
Iterator<E> iterator() | 해당 컬렉션의 반복자를 반환 |
boolean remove(Object o) | 해당 컬렉션에서 전달된 객체를 제거 |
int size() | 해당 컬렉션의 요소의 총 개수를 반환 |
Object[] toArray() | 해당 컬렉션의 모든 요소를 Object타입의 배열로 반환 |
<표> Collection 인터페이스의 주요 메소드
3. 동기화 (synchronized)
멀티 스레드 환경에서 하나의 스레드가 작업 중일 때 다른 스레드가 동시에 작업을 할 수 없게 해 문제 발생을 막는다.
컬렉션으로는 Vector와 Hashtable이 있으며 기존의 컬렉션을 동기화된 컬렉션으로 래핑하는 방법도 존재한다.
// 비동기화 상태인 컬렉션을 동기화된 컬렉션으로 변경하는 방법
List<T> list = Collections.synchronizedList(new ArrayList<T>());
Set<T> set = Collections.synchronizedSet(new HashSet<T>());
Map<K, V> map = Collections.synchronizedMap(new HashMap<K, V>());
'Java > Java Basic' 카테고리의 다른 글
컬렉션 - Set (0) | 2019.09.04 |
---|---|
컬렉션 - List (0) | 2019.09.04 |
함수적 인터페이스 - Predicate (0) | 2019.09.03 |
함수적 인터페이스 - Operator (0) | 2019.09.03 |
함수적 인터페이스 - Function (0) | 2019.09.03 |