PriorityQueue属于Java集合框架。PriorityQueue基于优先级堆,它是队列接口的实现。当我们需要Queue实现时,可以使用此数据结构,并且我们需要根据每个元素的优先级以特定的排序顺序维护该集合的元素。它是在JDK1.5中引入的。
JavaPriorityQueue关键点
实例化PriorityQueue时,可以在构造函数中提供比较器。然后队列中的项目顺序将根据提供的比较器决定。
如果没有提供比较器,则将使用该集合的自然顺序(Comparable)来对元素进行排序。
这个集合中不允许null。
队列头是订单中最少的项目。
PriorityQueue元素之间的排序关系是任意决定的。
PriorityQueue不同步。PriorityBlockingQueue是PriorityQueue的线程安全对象。
PriorityQueue是无限的,它根据队列中元素的数量动态增长。它在任何时候都具有内部容量,并随着元素的添加而增加。这种内部能力和增量的政策没有具体规定或标准化。
此PriorityQueue的iterator()不保证以任何特定顺序遍历队列元素。
表现明智;remove()和contains()方法需要线性时间。peek(),element()和size()需要固定的时间。offer(),poll()和remove()需要O(logn)时间。
offer()和add()是Queue接口的方法,由PriorityQueue实现。这些被用于队列中的元素插入。它们的表现与PriorityQueue相同,两者没有区别。
PriorityQueue示例
以下示例说明了我们如何使用JavaPriorityQueue集合。
PriorityQueueExample.java
VowelComparator.java
此比较器类用于确定上述PriorityQueue的排序顺序。
PriorityQueue示例输出
fig
lemon
orange
watermelon
以上就是动力节点java培训机构的小编针对“Java基础学习:java优先级队列”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习