개발새발
List, Set, Map 본문
- 기존에 많은 데이터를 처리하기 위해 배열을 사용했지만 크기가 고정되어 있고 삽입, 삭제가 오래 걸린다는 불편한 점이 있다.
- 이를 보완하기 위해 자바에서 동적배열 개념인 컬렉션 프레임워크를 제공
- 자료의 삽입, 삭제, 검색 등이 용이해지고 어떠한 자료형이라도 담을 수 있으며 크기가 자유롭게 늘어난다는 강점이 있다
List
- 순서가 있고 중복을 허용합니다.
- 인덱스로 원소에 접근이 가능합니다.
- 크기가 가변적 입니다.
List의 종류와 특징
- LinkedList
- 양방향 포인터 구조로 데이터 삽입, 삭제가 빠르다.
- ArrayList보다 검색이 느리다.
- ArrayList
- 단반향 포인터 구조로 데이터 순차적 접근에 강점을 가진다.
- 배열을 기반으로 데이터를 저장한다.
- 데이터 삽입, 삭제가 느리다.
- 데이터 검색이 빠르다.
Map
- Key와 Value의 한상으로 이루어진 데이터 집합.
- Key에 대한 중복이 없으며, 순서를 보장하지 않습니다.
- 검색 속도가 빠르다.
Map의 종류와 특징
- HashMap
- Key에 대한 중복이 없으며 순서를 보장하지 않는다.
- Key와 Value 값으로 Null을 허용한다.
- 검색에 뛰어난 성능을 가진다.
- HashTable
- 동기화가 보장되어 병렬 프로그래밍이 가능하고 HashMap 보다 처리 속도가 느리다.
- Key와 Value 값으로 Null을 허용하지 않는다.
- LinkedHashMap
- 입력된 순서를 보장한다.
- TreeMap
- 이진 탐색 트리를 기반으로 키와 값을 저장한다.
- Kwy값을 기준으로 오름차순 정렬되고 빠른 검색이 가능하다.
- 저장 시 정렬을 하기 때문에 시간이 오래 걸린다
Set
- 데이터의 집합이며 순서가 없고 중복된 데이터를 허용하지 않는다.
- 중복되지 않은 데이터를 구할 때 유용하다.
- 빠른 검색 속도를 가진다.
Set의 종류와 특징
- HashSet
- 인스턴스의 해시값을 기준으로 저장하기 때문에 순서를 보장하지 않는다.
- Null을 허용한다.
- TressSet보다 삽입, 삭제가 빠르다
- LinkedHashSet
- 입력된 순서를 보장한다.
- TreeSet
- 이진 탐색 트리를 기반으로 한다.
- 데이터들이 오름차순으로 정렬된다.
- 데이터 삽입 삭제에는 시간이 걸리지만 검색, 정렬이 빠르다.
'자바' 카테고리의 다른 글
Static (0) | 2022.11.14 |
---|---|
제네릭 (0) | 2022.10.31 |
OOP(Object Oriented Programming) (0) | 2022.10.24 |
재귀함수 #for문 (0) | 2022.08.04 |
#재귀 (0) | 2022.08.03 |
Comments