-
JCF( Java Collections Framework )JAVA 2019. 5. 20. 09:27
회사 내에서 스터디를 시작하면서,
아무런 사전적으로 공부한게 없이 바로 내부적인 스터디를 들어가버리니 개인적으로 너무 날코딩? 비슷한 개념없이 코딩을 하던게 스스로를 표현하고 있는 것 같아 다시금 하나하나 공부하기로 맘먹고 정리를 시작하려고한다.
책 1페이지 펴자마자 무슨단어인지 몰라 정리한다.
요 최근 하루하루가 벗고다니는것마냥 부끄러운 나날이다, 얼른 많은 지식을 얻어야하겠다 필드에서 뛰는것과 연구소의 일은 참 다른것 같다.
개인적인 사설은 각설하고 정리시작.
1. Collection
Java에서 Collection이란 데이터의 집합, 그룹을 의미한다고 한다. ( 자세한 구조는 아래의 이미지를 참고 )
Collection에는 list / set이 존재하고, 이에 해당하는 상속구조들을 표현하고 있다.
interface로는 List / Set / Queue로 존재한다는데,
이후 Queue와 Stack에 대해서도... 구분지어서 설명하도록 하겠다.
또한 Map도 Collection으로 구분한다 하니 이를 확인하도록 하자.
2. Collection 인터페이스의 특징
인터페이스
구현클래스
특징
Set
HashSet
TreeSet
순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.
List
LinkedList
Vector
ArrayList
순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
Queue
LinkedList
PriorityQueue
List와 유사
Map
Hashtable
HashMap
TreeMap
키(Key), 값(Value)의 쌍으로 이루어진 데이터으 집합으로,
순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다.
1) Set 인터페이스
순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.
- HashSet
- 가장빠른 임의 접근 속도
- 순서를 예측할 수 없음 - TreeSet
- 정렬방법을 지정할 수 있음
2) List 인터페이스
순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
- LinkedList
- 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 데이터의 위치정보만 수정하면 되기에 유용
- 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰임 - Vector
- 과거에 대용량 처리를 위해 사용했으며, 내부에서 자동으로 동기화처리가 일어나 비교적 성능이 좋지 않고 무거워 잘 쓰이지 않음 - ArrayList
- 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어남
3) Map 인터페이스
키(Key), 값(Value)의 쌍으로 이루어진 데이터으 집합으로,
순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다.
- Hashtable
- HashMap보다는 느리지만 동기화 지원
- null불가 - HashMap
- 중복과 순서가 허용되지 않으며 null값이 올 수 있다. - TreeMap
- 정렬된 순서대로 키(Key)와 값(Value)을 저장하여 검색이 빠름
현재 위 내용은 떠돌아다니는 내역을 발췌하였는데, 중요하게 봐야할껀.. HashMap / ArrayList / LinkedList 인 것 같다.
'JAVA' 카테고리의 다른 글
2개의 DB간 Table & Column 차이 비교 (0) 2021.03.12 Stack / Heap / Garbage Collection (0) 2020.11.18 Mybatis null check java method로 처리하기 (0) 2020.08.25 각각 DB 폴더에 담긴 Mapper 비교하여 누락된 내역 찾기 (0) 2020.01.22 Excel Sheet Copy (0) 2019.06.05 - HashSet