List, Map, Set의 차이점
List
순서가 있는 데이터의 집합, 데이터의 중복을 허용, index 저장 및 사용하여 사용 특정 위치에 요소를 삽입, 접근
순차검색
LinkedList
- 자료의 주소값으로 서로 연결되어 있는 구조
- stack이나 queue와 같은 자료구조로 사용할 수 있다.
Vector
- 동시접속 - 자동 동기화
- ArrayList와 기능은 동일
ArrayList
- null element도 허용
- vector보다 가벼움
- 메모리 상의 주소를 정확하게 참조해서 가져온다
- 자료의 최대 갯수에 영향을 받는다 Capacity - 수용할 수 있는 데이터의 수, size - 저장된 데이터의 수
SET
순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다.
HashSet
- hashcode에 의해서 중복여부 확인
- 가장 빠른 접근을 보장
- 내부적으로 hasmap을 이용 - hashset에 추가되는 항목은 hashmap의 키값으로 저장
TreeSet
- 이진탐색 트리 형태 - 레드 블랙 트리
- 정렬된 순서대로 보관하며 정렬 방법을 지정할 수 있음
LinkedHashset
- 추가된 순서, 또는 가장 최근에 접근한 순서대로 접근 가능
- java 1.4에서 set에 순서를 부여하기 위해 등장
Map
Key, Value 쌍으로 이뤄진 데이터의 집합, 순서유지 x , key 중복 x, value 중복 o
HashMap
- key, value null 허용
TreeMap
- Comparator 정렬을 위한 인터페이스 구현, 오름차순이 기본값
- 이진검색트리의 형태
- 정렬된 순서대로 키/값을 저장 - 빠른 검색 가능
HashTable
- Key, Value null이 허용되지 않는다.
- hashMap 보다 느리지만 동기화를 지원
LinkedHashMap
- 순서가 정해져 있음
동기화를 지원하기 위한 메소드
static synchronizedCollection(Collection c)
static synchronizedList(List list)
static synchronizedMap(Map m)
static synchronizedSet(Set s)
static synchronizedSortedMap(SortedMap m)
static synchronizedSortedSet(SortedSet s)
'공부 > 개발' 카테고리의 다른 글
GO 프로그래밍 - 기초 1편 환경 설정 (0) | 2020.11.11 |
---|---|
swap (0) | 2018.01.10 |
상속 (0) | 2017.12.27 |
헷갈리는 String (0) | 2017.12.26 |
인터페이스 강제 타입 변환(casting) (4) | 2017.06.13 |