优先队列(PriorityQueue)

Posted xm970829

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优先队列(PriorityQueue)相关的知识,希望对你有一定的参考价值。

首先介绍一下PriorityQueue优先队列,普通队列是先进先出的,但是优先队列刚好不是这样的,优先队列存在着一个优先级,换句话说也就是排序问题,队列里的对象,某个值越大,或越小,排的就越靠前。这里就用到了Comparable接口。

技术图片
pic-1589438395307.png

这里的Student对象就是在优先队列里的对象。
实现comparable接口之后,就必须重写一个compareTo方法,如下图:
技术图片

再次介绍,优先队列priorityQueue的表层应用,如下:

技术图片
pic-1589438395307.png

我感觉类似这种表层应用,我们只要记住PriorityQueue中的方法就可以达到使用PriorityQueue优先队列的目的了,现在先来介绍下PriorityQueue优先队列里的方法。

1:offer()        给priorityQueue队列添加一个元素。
2:add()         功能和offer()方法一样,查看源代码得知,在add()方法里调用了offer()方法。
3:remove()   删除priorityQueue队列中的指定元素。
4:clear()       清空priorityQueue队列。
5:peek()       读取priorityQueue队列中的第一个元素,也就是优先级最高的那个元素。(不会删除)
6:poll()         取出priorityQueue队列中的第一个元素(会删除)
7:size()         获取priorityQueue队列的大小,这个大小不是指初始化大小,而是队列中有几个元素。
8:contains()  判断元素是否存在于队列中,存在返回true,不存在返回false。

参考链接: https://www.cnblogs.com/demingblog/p/6485193.html

以上是关于优先队列(PriorityQueue)的主要内容,如果未能解决你的问题,请参考以下文章

Python 线程优先队列 PriorityQueue

优先队列(PriorityQueue)

优先队列(PriorityQueue)

.NET 6 优先队列 PriorityQueue

优先队列(PriorityQueue)

Java优先队列(PriorityQueue)和有序集合(TreeSet)