List
- 순서 있음, 중복 허용
- 크기가 가변 적
- LinkedList
- 양방향 포인터 구조로 데이터 삽입, 삭제가 빠르다.
- ArrayList보다 검색이 느리다.
- ArrayList
- 단반향 포인터 구조로 데이터 순차적 접근에 강점을 가진다.
- 배열을 기반으로 데이터를 저장한다.
- 데이터 삽입, 삭제가 느리다.
- 데이터 검색이 빠르다.
Set
- 순서 없음, 중복 없음
- HashSet
- 인스턴스의 해시값을 기준으로 저장하기 때문에 순서를 보장하지 않는다.
- NULL 값을 허용한다.
- TreeSet보다 삽입, 삭제가 빠르다.
- LinkedHashSet
- 입력된 순서를 보장한다.
- TreeSet
- 이진 탐색 트리(Red-Black Tree)를 기반으로 한다.
- 데이터들이 오름차순으로 정렬된다.
- 데이터 삽입, 삭제에는 시간이 걸리지만 검색, 정렬이 빠르다.
map
- key, value 한짱으로 이루어진 데이터 집합
- key 중복 안됨, 순서보장 안됨
- HashMap
- Key에 대한 중복이 없으며 순서를 보장하지 않는다.
- Key와 Value 값으로 NULL을 허용한다.
- 동기화가 보장되지 않는다.
- 검색에 가장 뛰어난 성능을 가진다.
- HashTable
- 동기화가 보장되어 병렬 프로그래밍이 가능하고 HashMap 보다 처리속도가 느리다.
- Key와 Value 값으로 NULL을 허용하지 않는다.
- LinkedHashMap
- 입력된 순서를 보장한다.
- TreeMap
- 이진 탐색 트리(Red-Black Tree)를 기반으로 키와 값을 저장한다.
- Key 값을 기준으로 오름차순 정렬되고 빠른 검색이 가능하다.
- 저장 시 정렬을 하기 때문에 시간이 다소 오래 걸린다.
'백엔드개발자 > JAVA' 카테고리의 다른 글
Math 클래스 (0) | 2022.05.05 |
---|---|
Map (0) | 2022.04.25 |
Presentation Logic 과 Business Logic (0) | 2022.01.02 |
인터페이스 (자바의 정석) (0) | 2021.12.08 |
+ 추상클래스 예제 (0) | 2021.12.04 |