Java에서 PriorityQueue를 사용하여 요소 우선순위 지정
Java에서 PriorityQueue를 사용하면 컬렉션의 우선순위를 효과적으로 관리할 수 있습니다. 이 데이터 구조는 사용자 정의 가능한 비교기를 기반으로 요소가 정렬되는 대기열을 유지하여 우선 순위가 가장 높은 요소가 먼저 검색되도록 합니다.
정렬 순서 사용자 정의
특정 요구 사항에 따라 PriorityQueue는 Comparator
import java.util.Comparator; public class StringLengthComparator implements Comparator<String> { @Override public int compare(String s1, String s2) { if (s1.length() < s2.length()) { return -1; } if (s1.length() > s2.length()) { return 1; } return 0; } }
제공 및 추가 메서드
제공 및 추가가 모두 수행되는 동안 메소드는 PriorityQueue에 요소를 추가하지만 미묘한 차이를 제공합니다. 이 시나리오에서는 add가 IllegalStateException을 발생시키는 동안 용량 제약으로 인해 요소를 추가할 수 없는 경우 Offer가 false를 반환합니다. 그러나 제한이 없는 PriorityQueue에서는 두 메서드 모두 동일하게 작동하여 대기열에 요소를 추가합니다.
사용자 지정 비교기를 사용하여 PriorityQueue 사용법 설명:
import java.util.PriorityQueue; public class PQDemo { public static void main(String[] args) { PriorityQueue<String> queue = new PriorityQueue<>(10, new StringLengthComparator()); queue.add("short"); queue.add("very long indeed"); queue.add("medium"); while (!queue.isEmpty()) { System.out.println(queue.remove()); } } }
출력:
short medium very long indeed
이 예에서 우선순위 큐는 문자열을 길이에 따라 정렬하여 가장 짧은 문자열부터 시작합니다.
위 내용은 요소 우선순위를 관리하기 위해 Java의 PriorityQueue를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!