Java的优先级队列可以使用java.util.PriorityQueue
类来实现。下面是一个使用优先级队列的示例:
import java.util.PriorityQueue; public class PriorityQueueExample { public static void main(String[] args) { // 创建一个优先级队列 PriorityQueuepriorityQueue = new PriorityQueue<>(); // 添加元素到队列 priorityQueue.offer(5); priorityQueue.offer(2); priorityQueue.offer(8); priorityQueue.offer(3); // 打印队列中的元素 while (!priorityQueue.isEmpty()) { System.out.println(priorityQueue.poll()); } } }
运行上面的代码会输出:
2 3 5 8
优先级队列会按照元素的优先级进行排序。默认情况下,优先级队列中的元素按照自然顺序进行排序。如果要指定自定义的排序规则,可以通过传入Comparator
对象来创建优先级队列,例如:
import java.util.Comparator; import java.util.PriorityQueue; public class PriorityQueueExample { public static void main(String[] args) { // 创建一个优先级队列,使用自定义的排序规则 PriorityQueuepriorityQueue = new PriorityQueue<>(Comparator.reverseOrder()); // 添加元素到队列 priorityQueue.offer(5); priorityQueue.offer(2); priorityQueue.offer(8); priorityQueue.offer(3); // 打印队列中的元素 while (!priorityQueue.isEmpty()) { System.out.println(priorityQueue.poll()); } } }
上面的代码会输出:
8 5 3 2
这里我们通过传入Comparator.reverseOrder()
来创建一个比较器,使得元素按照降序排序。