소개
Java의 기본 데이터 구조인 PriorityQueue는 효율적인 방법을 제공합니다. 우선순위에 따라 정렬된 요소를 관리합니다. 그러나 기본 정렬 메커니즘이 항상 원하는 정렬 순서와 일치하지 않을 수도 있습니다.
사용자 정의 정렬 순서
PriorityQueue에 대한 사용자 정의 정렬 순서를 지정하려면 생성자를 사용하세요. 비교기를 사용하는 과부하 슈퍼E> 비교기. 원하는 정렬 순서에 따라 요소를 비교하는 비교기를 전달합니다.
비교기 구현
비교기는 비교 논리를 지정하기 위해 비교 메서드를 구현해야 합니다. 이 메서드는 두 요소를 사용하고 상대 순서를 나타내는 정수를 반환합니다.
예
문자열의 PriorityQueue를 문자열 길이에 따라 오름차순으로 정렬하려는 예를 생각해 보세요. 다음은 샘플 비교기와 PriorityQueue 사용법입니다.
import java.util.*; class StringLengthComparator implements Comparator<String> { @Override public int compare(String x, String y) { return x.length() - y.length(); // Sort by ascending length } } ... Comparator<String> comparator = new StringLengthComparator(); PriorityQueue<String> queue = new PriorityQueue<>(10, comparator); queue.add("short"); queue.add("very long indeed"); queue.add("medium");
추가 및 제공
추가 및 제공 모두 PriorityQueue 인터페이스의 메소드 구현입니다. 일반적으로 다르게 동작할 수 있지만 PriorityQueue의 컨텍스트에는 제한이 없기 때문에 실질적인 차이가 없습니다.
출력
PriorityQueue는 다음 요소를 제공합니다. 지정된 정렬 순서. 위의 예에서 출력은 다음과 같습니다.
short medium very long indeed
위 내용은 Java의 PriorityQueue에서 사용자 정의 정렬 순서를 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!