Coding Note
컬렉션 프레임워크 요약 본문
컬렉션 프레임워크(collection framework)
컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합이다.
즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것!
+) Iterable<E> : Collection 인터페이스의 최상위 인터페이스
- 대량의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스 집합
- 데이터를 처리하는 알고리즘과 데이터를 저장하는 자료구조를 구조화하여 클래스로 구현한 것
- 데이터 자료 구조에 따라 List, Set, Map으로 나누어짐
1. List
- 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용한다.
- ArrayList
- 객체 내부에 있는 배열에 데이터를 저장
- 단방향 포인터 구조로 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어남
- 동기화 보장 하지 않음
- LinkedList
- 양방향 포인터 구조로 데이터의 삽입, 삭제가 잦을 경우에 효율적
- 스택, 큐, 양방향 큐 등에 사용됨
- Vector
- ArrayList와 동일하게 사용이 가능한 리스트, 동기화 여부의 차이가 있음
- 동기화 보장
- Stack
- LIFO(Last In First Out), 제일 마지막에 추가된 데이터를 먼저 꺼내는 자료 구조
2. Set
- 순서를 유지하지 않는 데이터이자 중복을 허용하지 않음
- HashSet
- 가장 빠른 임의 접근 속도
- 순서를 예측 할 수 없음
- TreeSet
- 정렬 방법을 지정할 수 있음
3. Queue
- List와 유사
- FIFO(First In First Out)
- 데이터가 삽입시 enqueue, 데이터 나갈 때 dequeue
- ArrayDeque
- 양쪽으로 삽입, 삭제가 가능한 큐 자료 구조
- PriorityQueue
- 우선 순위를 가지는 큐로 원소에 우선순위를 부여하여 높은 순으로 먼저 반환함
- 이진트리 구조로 구현되어 있음
4. Map
- 키, 값 형식으로 이루어진 데이터 집합
- 순서는 유지되지 않으면 키(Key) 중복을 허용하지 않으나 값(Value) 중복 허용
- HashTable
- HashMap보다는 느리지만 동기화 지원됨
- null 불가
- HashMap
- 중복과 순서가 허용되지 않으면 null값 허용
- TreeMap
- 정렬된 순서대로 키(Key)와 값(Value)을 저장하여 검색이 빠름
5. 차이점
- List/Set
- List는 순서가 있는 Collection이기 때문에 데이터를 넣는 순서가 보장되어 Index로 특정 아이템을 가져올 수 있지만 Set은 데이터를 넣는 순서가 보장되지 않아 불가능함
- List/Map
- List는 순서, Map은 순서 있음
- Set/Map
- Set은 데이터 중복 허용하지 않지만, Map은 key 중복 불가, Value 중복 허용
'JAVA' 카테고리의 다른 글
JAVA - 접근제한자 (0) | 2022.04.19 |
---|---|
[JAVA] CodeUp 기초 1023~ 1026 (0) | 2022.02.10 |
[JAVA] Input/Output Stream 알아보기! (0) | 2022.02.10 |
[JAVA] next(), nextLine() 함수의 차이점 (0) | 2022.02.09 |
[JAVA] SMS 보내기 (0) | 2021.12.14 |