码迷,mamicode.com
首页 > 其他好文 > 详细

优先队列(PriorityQueue)

时间:2020-05-14 15:53:20      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:sof   idt   重写   rabl   优先   wrap   remove   对象   splay   

首先介绍一下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)

标签:sof   idt   重写   rabl   优先   wrap   remove   对象   splay   

原文地址:https://www.cnblogs.com/xm970829/p/12888564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!