Việc triển khai Hàng đợi Mức ưu tiên trong thư viện chuẩn Java dường như là một Hàng đợi Mức ưu tiên tối thiểu mà tôi thấy hơi khó hiểu. Để biến nó thành giá trị tối đa, tôi đã tạo đối tượng so sánh tùy chỉnh.Thay đổi Ưu tiên JavaQueue thành Max PQ
Comparator<Integer> cmp = new Comparator<Integer>()
{
public int compare(Integer x, Integer y)
{
return y - x;
}
};
Tôi đã tự hỏi nếu có một giải pháp thanh lịch hơn. Về cơ bản, tôi không phải là hàng đợi ưu tiên chung có thể được sử dụng để thực hiện Dijkstras vv. Tôi thậm chí không nhận ra rằng sẽ có hàng đợi hoạt động ngược lại:/
Java 8 thêm một hàm tạo chỉ cần một Trình so sánh (https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html), vì vậy nếu bạn đang sử dụng Java 8 bạn không phải cung cấp dung lượng ban đầu. – tsleyson