모두 기본적으로 오름차순, Comparator를 사용해 사용자 정의 가능.
PriorityQueue
- 특징: 우선순위에 따라 원소가 정렬된 상태로 관리되며, 기본적으로 최소 힙 구조를 사용.
- 용도: 실시간으로 우선순위가 중요한 작업에서 활용, 최소값/최대값을 빠르게 추출하는 데 유용
- 예: 배열의 가장 큰 값부터 숫자를 줄여서 최대한 배열 전체의 값들을 고르게 만들때(제곱 합을 최소화) 사용하면 매번 정렬을 안 해도 된다(프로그래머스의 야근지수)
TreeSet
- 특징: 정렬된 순서를 유지하는 집합(Set)으로, 중복을 허용하지 않음.
- 용도: 정렬된 '고유한' 데이터를 저장.
TreeMap
- 특징: 키-값 쌍을 정렬된 상태로 저장하는 맵(Map).
- 용도: 정렬된 상태의 키-값 데이터를 저장.
Arrays.sort / Collections.sort
- 특징: 배열이나 리스트를 정렬하는 메서드.
- 용도: 컬렉션이나 배열을 '일시적'으로 정렬.