Java 之 优先级队列

Java 之 优先级队列当我们需要Queue实现时,可以使用此数据结构,并且我们需要根据每个元素的优先级以特定的排序顺序维护该集合的元素。

欢迎大家来到IT世界,在知识的湖畔探索吧!

PriorityQueue属于Java集合框架。 PriorityQueue基于优先级堆,它是队列接口的实现。 当我们需要Queue实现时,可以使用此数据结构,并且我们需要根据每个元素的优先级以特定的排序顺序维护该集合的元素。 它是在JDK 1.5中引入的。

Java 之 优先级队列

Java PriorityQueue关键点

  • 实例化PriorityQueue时,可以在构造函数中提供比较器。然后队列中的项目顺序将根据提供的比较器决定。

  • 如果没有提供比较器,则将使用该集合的自然顺序(Comparable)来对元素进行排序。

  • 这个集合中不允许null。

  • 队列头是订单中最少的项目。

  • PriorityQueue元素之间的排序关系是任意决定的。

  • PriorityQueue不同步。 PriorityBlockingQueue是PriorityQueue的线程安全对象。

  • PriorityQueue是无限的,它根据队列中元素的数量动态增长。它在任何时候都具有内部容量,并随着元素的添加而增加。这种内部能力和增量的政策没有具体规定或标准化。

  • 此PriorityQueue的iterator()不保证以任何特定顺序遍历队列元素。

  • 表现明智; remove()和contains()方法需要线性时间。 peek(),element()和size()需要固定的时间。 offer(),poll()和remove()需要O(log n)时间。

  • offer()和add()是Queue接口的方法,由PriorityQueue实现。这些被用于队列中的元素插入。它们的表现与PriorityQueue相同,两者没有区别。

PriorityQueue示例

以下示例说明了我们如何使用Java PriorityQueue集合。

PriorityQueueExample.java

Java 之 优先级队列

VowelComparator.java

此比较器类用于确定上述PriorityQueue的排序顺序。

Java 之 优先级队列

PriorityQueue示例输出

fig
lemon
orange
watermelon

欢迎大家来到IT世界,在知识的湖畔探索吧!

Java 之 优先级队列

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/36361.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信