优先队列(PriorityQueue)
Posted xm970829
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优先队列(PriorityQueue)相关的知识,希望对你有一定的参考价值。
首先介绍一下PriorityQueue优先队列,普通队列是先进先出的,但是优先队列刚好不是这样的,优先队列存在着一个优先级,换句话说也就是排序问题,队列里的对象,某个值越大,或越小,排的就越靠前。这里就用到了Comparable接口。
这里的Student对象就是在优先队列里的对象。
实现comparable接口之后,就必须重写一个compareTo方法,如下图:
再次介绍,优先队列priorityQueue的表层应用,如下:
我感觉类似这种表层应用,我们只要记住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。
以上是关于优先队列(PriorityQueue)的主要内容,如果未能解决你的问题,请参考以下文章