배열
순차적 접근속도 가장 빠름.
비순차적 삽입/삭제
크기 변경 불가
List
순서가 있으므로, 데이터의 중복 허용.
ArrayList
내부적으로 배열로 구현
배열크기 변경 가능. --> 크기를 미리 모를때 사용
순차적
LinkedList
Node로 구현
비순차적 삽입/삭제에 최적
접근성이 떨어진다. (인덱스가 없으므로 처음부터 하나씩 방문해야 함)
Set
순서가 없다.
주머니에 구슬을 넣는 모양. (중복된 데이터를 넣으면 구분이 불가능하므로 허용하지 않는다.)
중복불가. 중복된 데이터가 삽입 시도 -> 원래 데이터만 살아남고 중복된 데이터 삽입 불허.
HashSet
hasing기법을 사용해 중복 체크 O(1)
데이터가 많을떄 빠르게 검색할수 있는 가장 좋은 자료구조
TreeSet
Binary Search Tree로 중복 체크 O(logN)
정렬을 자주 실행해야 하는 경우.
Map
키 : 값
"바나나" : 5000
"사과" : 5000
key로 값을 구분할 수 있기 때문에 중복허용
단, key는 중복될 수 없다.
만약 중복 키가 들어오면 --> 덮어쓰기. (기존데이터 지우고) <Set과 비교>
왜? 키는 중복되더라도 새로운 데이터가 있을수 있기 때문.
HashMap
데이터가 많을떄 빠르게 검색할수 있는 가장 좋은 자료구조
TreeMap
정렬을 자주 실행해야 하는 경우.
'Computer Science > Data Structure' 카테고리의 다른 글
해시테이블 Hashtable (2) | 2019.05.06 |
---|---|
Merge Sort 병합정렬 (4) | 2019.01.29 |