欢迎大家来到IT世界,在知识的湖畔探索吧!
PriorityQueue属于Java集合框架。 PriorityQueue基于优先级堆,它是队列接口的实现。 当我们需要Queue实现时,可以使用此数据结构,并且我们需要根据每个元素的优先级以特定的排序顺序维护该集合的元素。 它是在JDK 1.5中引入的。
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
VowelComparator.java
此比较器类用于确定上述PriorityQueue的排序顺序。
PriorityQueue示例输出
fig lemon orange watermelon欢迎大家来到IT世界,在知识的湖畔探索吧!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/36361.html