Study/Java
[Java] JCF(Java Collections Framework)
별천랑
2021. 4. 17. 15:53
JCF란
- Java에서 Collections란 데이터의 집합, 그룹을 의미한다.
- JCF는 이러한 데이터, 자료구조인 Collection과 이를 구현하는 클래스, 정의하는 인터페이스들을 제공한다.
JCF 장점
- 코드 재사용이 쉽다.
- 프로그램 속도와 품질을 높일 수 있다.
- 관련성이 없는 API들의 상호운영성을 보장한다.
- 표준적인 인터페이스를 제공하면서 새로운 API를 배우는 노력을 줄여준다.
- 새로운 API를 직접 제작하는 노력의 낭비를 줄여준다.
- 프로그래밍을 쉽게 한다.
JCF 종류
List - ArrayList
- 배열을 구현한 클래스로 논리적 순서와 물리적 순서가 동일하며 가장 많이 사용
List - LinkedList
- 논리적으로 순차적인 구조지만, 물리적으로는 순차적이지 않을 수 있음
Queue
- Queue는 인터페이스이기 때문에 객체 생성 불가능
- Linkedlist, PriorityQueue를 사용하여 객체 생성
Vector
- ArrayList와 같은 구조
- 동기화(Syncronized)된 메서드로 구성되어있기 때문에 MultiThread가 동시에 메서드를 실행할 수 없음
Set - HashSet
- List처럼 index로 저장 순서를 유지 x
- Iterator 혹은 stream으로 순회
- Object 클래스를 이용하여 중복 제거
Set - TreeSet
- 객체의 정렬에 사용
- 중복을 허용하지 않으면서 오름차순이나 내림차순으로 정렬
- 내부적으로 이진 탐색 트리로 구현
Map - HashMap
- Key, Value의 쌍으로 연관 지어 저장
- HashSet과 저장 방식 같음
- LinkedList와 유사함
Map - TreeMap
- 객체의 정렬에 사용
- 내부 구조는 TreeSet과 같음