[선택 가이드]
1. 순서 O, 중복 O : ArrayList()
※ 데이터가 많고, 추가/삭제 작업이 "앞쪽에서" 빈번한 경우에는 LinkedList()
2. 순서 X, 중복 X : HashSet()
만약 순서가 필요하면 LinkedHashSet()
정렬된 순서가 필요하면 TreeSet()
(요소가 키-값)
3. 순서 X, key: 중복 X / value: 중복 O : HashMap()
만약 순서가 필요하면 LinkedHashMap()
정렬된 순서가 필요하면 TreeMap()
<요소를 처리하기 전에 보관해야 하는 경우> : ArrayDeque()
※ 우선순위에 따라 요소를 처리해야 한다면 PriorityQueue() 를 고려
(참고) PriorityQueue는 입력하는 요소에 우선순위를 부여하지만, 자주 사용하지는 않아 따로 설명하지는 않는다
[실무 선택 가이드]
'List' 의 경우 95% 이상 ArrayList() 를 사용
'Set' 의 경우 대부분 HashSet() 을 사용
'Map' 의 경우 대부분 HashMap() 을 사용
'Queue' 의 경우 대부분 ArrayDeque() 를 사용
(실무에서는 List와 Map이 가장 많이 쓰인다고 한다)
HashXXX은 hashing 기법을 사용하기 때문에 검색에 최고성능을 보인다 (해시 충돌이 적다는 가정하에)
참고 및 출처: 김영한의 실전 자바 - 중급 2편
'Language > Java' 카테고리의 다른 글
[Java API] 정렬 메서드(sort) 종류와 차이점 (2) | 2024.10.29 |
---|---|
[Java API] java.util.Collections 메서드 (0) | 2024.10.27 |
[Java API] Comparable, Comparator 인터페이스 (0) | 2024.10.25 |
[Java API] Iterable, Iterator 인터페이스 (1) | 2024.10.25 |
[Java API] Queue, Deque 인터페이스(ArrayDeque, LinkedList) (0) | 2024.09.22 |