컬렉션 프레임워크
- 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미
- 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것
- 자바에서 제공하는 Collection은 크게 3가지 인터페이스로 나뉘어짐, List(리스트), Queue(큐), Set(집합)
- 아래의 그림에는 없지만 Map(맵) 인터페이스도 제공하고있다
List(리스트)
- 대표적인 선형 자료구조
- 주로 순서가 있는 데이터를 목록으로 이용할 수 있도록 만들어진 인터페이스
- 같은 요소의 중복 저장을 허용
- List Interface를 구현하는 클래스
- ArrayList<E>
- LinkedList<E>
- Vector<E>
- Stack<E>
- List Interface에 선언된 대표적인 메소드
Queue(큐)
- 선형 자료구조
- 주로 순서가 있는 데이터를 목록으로 이용할 수 있도록 만들어진 인터페이스
- 선입선출(FIFO)
- Deque(덱) Interface가 Queue Interface를 상속함
- Queue : 단뱡향 삽입/삭제 가능
- Deque : 양방향 삽입/삭제 가능
- Queue/Deque Interface를 구현하는 클래스
- LinkedList<E>
- ArrayDeque<E>
- PriorityQueue<E>
- 데이터 우선순위'에 기반하여 우선순위가 높은 데이터가 먼저 나오는 원리
- 정렬방식을 지정하지 않는다면 낮은 숫자가 높은 우선순위를 갖음
- 사용자가 정의한 객체를 타입으로 쓸 경우 반드시 Comparator 또는 Comparable을 통해 정렬 방식을 구현
- Queue/Deque Interface에 선언된 대표적인 메소드
Set(셋)
- 데이터를 중복해서 저장 불가
- 입력 순서대로의 저장 순서를 보장하지 않음
- 해시 알고리즘(hash algorithm)을 사용하여 검색 속도가 매우 빠름
- Set/SortedSet Interface를 구현하는 클래스
- HashSet<E>
- LinkedHashSet<E>
- 입력 순서대로의 저장 순서를 보장해준다.
- TreeSet<E>
- 데이터의 가중치에 따른 순서대로 정렬되어 보장
- Set Interface에 선언된 대표적인 메소드
Map(맵)
- 키와 값의 한 쌍으로 이루어지는 데이터의 집합
- 순서가 없음
- 키는 중복을 허용하지 않지만, 값은 중복될 수 있음
- Map Interface를 구현하는 클래스
- HashMap<K,V>
- Hashtable<K,V>
- TreeMap<K,V>
- 이진 검색 트리(binary search tree)의 형태로 저장
- 데이터를 추가하거나 제거하는 등의 기본 동작 시간이 매우 빠름
- HashMap에 선언된 메소드
void clear() | 해당 맵(map)의 모든 매핑(mapping)을 제거함. |
boolean containsKey(Object key) | 해당 맵이 전달된 키를 포함하고 있는지를 확인함. |
boolean containsValue(Object value) | 해당 맵이 전달된 값에 해당하는 하나 이상의 키를 포함하고 있는지를 확인함. |
V get(Object key) | 해당 맵에서 전달된 키에 대응하는 값을 반환함. 만약 해당 맵이 전달된 키를 포함한 매핑을 포함하고 있지 않으면 null을 반환함. |
boolean isEmpty() | 해당 맵이 비어있는지를 확인함. |
Set<K> keySet() | 해당 맵에 포함되어 있는 모든 키로 만들어진 Set 객체를 반환함. |
V put(K key, V value) | 해당 맵에 전달된 키에 대응하는 값으로 특정 값을 매핑함. |
V remove(Object key) | 해당 맵에서 전달된 키에 대응하는 매핑을 제거함. |
V replace(K key, V value) | 해당 맵에서 전달된 키에 대응하는 값을 특정 값으로 대체함. |
boolean replace(K key, V oldValue, V newValue) | 해당 맵에서 특정 값에 대응하는 전달된 키의 값을 새로운 값으로 대체함. |
int size() | 해당 맵의 매핑의 총 개수를 반환함. |
boolean remove(Object key, Object value) | 해당 맵에서 특정 값에 대응하는 특정 키의 매핑을 제거함. |
참고
https://st-lab.tistory.com/142
자바 [JAVA] - 자바 컬렉션 프레임워크 (Java Collections Framework)
아마 프로그래밍을 전공한다면 '자료구조'라는 단어를 들어본 적이 있을 것이다. 자료구조는 Data Structure라고 하는데, 직역하면 데이터 구조. 좀 더 자세하게 설명하자면 '일련의 일정 타입들의
st-lab.tistory.com
http://www.tcpschool.com/java/java_collectionFramework_map
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
'JAVA' 카테고리의 다른 글
JAVA - JVM 메모리 구조 (0) | 2023.11.17 |
---|---|
JAVA 버전 여러 개 전환하여 사용하는 법 (0) | 2023.02.03 |
JAVA - 람다식(Lamda Expression) (0) | 2022.10.23 |
2021-08-13 오후 (File) (0) | 2021.08.13 |
2021-08-13 오전 (File) (0) | 2021.08.13 |