자바 컬렉션 프레임워크의 상속 기본구조
데이터를 처리하기 위해 배열을 사용했었지만 크기가 고정되어있고 삽입 및 삭제 시간이 오래 걸린다는 불편한 점들이 많았습니다.
=> 따라서 이를 보완하기 위해 자바에서 동적 배열 개념인 컬렉션 프레임워크를 제공하였는데
=> 종류는 대표적으로 List, Map, Set이 있습니다.
List
◽ 특징
- 순서가 있고 중복을 허용
- 인덱스로 원소에 접근이 가능
- 크기가 가변적
◽ List의 종류와 특징
- LinkedList
- 양방향 포인터 구조로 데이터 삽입, 삭제가 빠름.
- ArrayList보다 검색이 느림
- ArrayList
- 단반향 포인터 구조로 데이터 순차적 접근에 강점이 있다.
- 배열을 기반으로 데이터를 저장한다.
- 데이터 삽입, 삭제가 느리다.
- 데이터 검색이 빠르다.
Set
◽ 특징
- 데이터의 집합이며 순서가 없고 중복된 데이터를 허용하지 ❌
- 중복되지 않은 데이터를 구할 때 유용
- 빠른 검색 속도를 가집니다.
- 인덱스가 따로 존재하지 않기 때문에 iterator를 사용
Set의 종류와 특징
-
HashSet
- 인스턴스의 해시값을 기준으로 저장하기 때문에 순서를 보장하지 ❌.
- NULL 값을 허용
- TreeSet보다 삽입, 삭제가 빠르다
-
LinkedHashSet
-
TreeSet
- 이진 탐색 트리(Red-Black Tree)를 기반으로 한다.
- 데이터들이 오름차순으로 정렬된다.
- 데이터 삽입, 삭제에는 시간이 걸리지만 검색, 정렬이 빠르다.
List, Set, Map 요약
- List : 데이터 순서대로 저장, 중복 허용
- Map : 순서 보장 x, key 중복 허용x
-> but Value의 중복은 허용
- Set : 순서 보장 x, 데이터 중복을 허용 x
출처
cocoon1787 님의 글을 참고하여 작성하였습니다.