ArrayList (new) / Vector (old)
- 순서 O, 중복 O (ex. 식당 대기 리스트)
- 배열 기반
- 데이터의 추가와 삭제에 불리
- 순차적인 추가와 삭제는 제일 빠름
- 임의의 요소에 대한 접근성이 뛰어남
LinkedList
- 순서 O, 중복 O
- 연결 기반
- 데이터의 추가와 삭제에 유리
- 임의의 요소에 대한 접근성이 좋지 않음
HashMap
- 순서 X, 키 중복 X, 값 중복 O (ex. 아이디와 비밀번호)
- 배열과 연결이 결합된 형태
- 추가, 삭제, 검색, 접근성이 모두 뛰어남
- 특히 검색에 최고 성능
TreeMap
- 순서 X, 키 중복 X, 값 중복 O
- 연결 기반
- 정렬과 범위 검색에 적합 (검색은 HashMap이 나음)
Stack
- LIFO
- 배열 기반. Vector를 상속받아 구현
Queue
- FIFO
- LinkedList가 Queue 인터페이스를 구현
Properties
- Hashtable을 상속받아 구현
- key, value를 문자열로만 정의
- 파일의 읽기와 쓰기에 용이
HashSet
- 순서 X, 중복 X
- HashMap을 이용해서 구현 (HashMap에서 key만 가지고 옴)
- 컬렉션 내의 중복 요소를 제거할 때 유용
- 정렬할 때는 TreeSet이 더 유용
TreeSet
- 순서 X, 중복 X
- TreeMap을 이용해서 구현 (TreeMap에서 key만 가지고 옴)
- 범위 검색, 정렬에 유리
LinkedHashMap / LinkedHashSet
- HashMap과 HashSet에 저장 순서 유지 기능을 추가
'JAVA' 카테고리의 다른 글
Comparator / Comparable 인터페이스 (0) | 2021.01.12 |
---|---|
지네릭스 (0) | 2021.01.11 |
Collections (0) | 2021.01.10 |
HashMap (0) | 2021.01.08 |
TreeSet (0) | 2021.01.07 |