在Java中,如何使用优先队列
时间: 2024-06-10 20:10:31 浏览: 16
Java中可以使用PriorityQueue类来实现优先队列,PriorityQueue是一个基于优先级堆的无界优先队列。以下是一个简单的示例:
```
import java.util.PriorityQueue;
public class PriorityQueueExample {
public static void main(String[] args) {
PriorityQueue<Integer> queue = new PriorityQueue<Integer>();
queue.add(3);
queue.add(1);
queue.add(4);
queue.add(2);
System.out.println("PriorityQueue: " + queue);
System.out.println("Peek: " + queue.peek());
System.out.println("Poll: " + queue.poll());
System.out.println("PriorityQueue after poll: " + queue);
}
}
```
输出结果为:
```
PriorityQueue: [1, 2, 4, 3]
Peek: 1
Poll: 1
PriorityQueue after poll: [2, 3, 4]
```
在这个例子中,我们创建了一个PriorityQueue<Integer>对象,并通过add()方法添加四个元素。输出PriorityQueue: [1, 2, 4, 3]显示这些元素已经按升序排列。
然后我们使用peek()方法查看队列的头部元素,输出Peek: 1表示返回了队列的头部元素1,但是该元素并没有从队列中移除。
接下来我们使用poll()方法获取队列的头部元素并从队列中移除,输出Poll: 1表示该方法返回了被移除的头部元素1。
最后我们输出队列中剩余的元素,输出PriorityQueue after poll: [2, 3, 4],可以看到队列中元素已经按升序排列,且没有被移除的元素1已经被移除。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)