list, set, map 의 차이에 대해 설명해 주세요.
List는 순서가 있으며, 데이터(값)의 중복을 허용한다.
Set은 순서가 없으며, 데이터(값)의 중복을 허용하지 않는다.
Map은
(Key, Value)구조이며,Key는 중복을 허용하지 않고,Value는 중복을 허용한다.
ArrayList
단방향 포인터 구조 데이터로, 순차적 접근(조회)이 빠르다.
LinkedList
양방향 포인터 구조로, 데이터의 삽입 및 삭제가 빠르다.
HashSet
입력 순서를 보장하지 않으며, 데이터의 중복을 허용하지 않는다.
LinkedHashSet
입력 순서를 보장하며, 데이터의 중복을 허용하지 않는다.
TreeSet
이진 트리를 기반으로 한 Set 컬렉션으로, 입력한 데이터의 크기가 비교 가능한 경우 오름차순으로 정렬되며, 데이터의 중복을 허용하지 않는다.
입력하는 데이터가 사용자 정의 객체인 경우
Comparable을 구현하여 정렬 기준을 설정할 수 있다.
TreeSet에 객체를 저장하면 부모 노드와 객체와 비교해서 낮은 것은 왼쪽 자식 노드에, 높은 것은 오른쪽 자식 노드에 저장한다.HashMap
Key에 대한 입력 순서를 보장하지 않으며,중복 key를 허용하지 않는다.LinkedHashMap
Key에 대한 입력 순서를 보장하며,중복 key를 허용하지 않는다.TreeMap
이진 트리를 기반으로 한 Map 컬렉션으로,
(Key, Value)를 저장하고 입력한 key 데이터의 크기가 비교 가능한 경우 오름차순으로 정렬되며,중복 Key를 허용하지 않는다.입력하는 데이터가 사용자 정의 객체인 경우
Comparable을 구현하여, 정렬 기준을 설정할 수 있다.
TreeSet과의 차이점은 키와 값이 저장된Entry를 저장한다는 점이다.
TreeMap에엔트리를 저장하면 키를 기준으로 자동 정렬되는데, 부모 키 값과 비교해서 낮은 것은 왼쪽, 높은 것은 오른쪽 자식 노드에Entry객체를 생성한다.
Last updated