priorityqueue类
时间: 2023-08-14 15:13:19 浏览: 85
PriorityQueue类是一个数据结构,用于存储具有优先级的元素。它是基于堆(heap)的实现,其中每个元素都有一个与之相关联的优先级。
在PriorityQueue中,元素按照优先级从高到低进行排序。当我们插入新元素时,它会根据其优先级自动插入到正确的位置。而在删除元素时,总是移除具有最高优先级的元素。
PriorityQueue类提供了以下常用操作:
- 插入元素:使用`push`或`add`方法将元素插入队列中。
- 删除元素:使用`pop`方法删除并返回具有最高优先级的元素。
- 获取最高优先级的元素:使用`top`或`peek`方法返回具有最高优先级的元素,但不删除它。
- 检查队列是否为空:使用`isEmpty`方法检查队列是否为空。
- 获取队列大小:使用`size`方法返回队列中元素的数量。
以下是一个使用PriorityQueue的示例:
```java
import java.util.PriorityQueue;
public class PriorityQueueExample {
public static void main(String[] args) {
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add(10);
pq.add(5);
pq.add(8);
System.out.println("Size of the priority queue: " + pq.size());
System.out.println("Highest priority element: " + pq.peek());
while (!pq.isEmpty()) {
System.out.println(pq.poll());
}
}
}
```
输出结果:
```
Size of the priority queue: 3
Highest priority element: 5
5
8
10
```
以上示例演示了如何使用PriorityQueue插入元素、获取最高优先级元素,并按优先级顺序删除元素。
阅读全文