首页 课程 师资 教程 报名

Java基础学习:java优先级队列

  • 2020-04-14 13:12:07
  • 2284次 动力节点


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


Java基础学习:java优先级队列


    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


  Java基础学习:java优先级队列


    VowelComparator.java


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


   Java基础学习:java优先级队列

    PriorityQueue示例输出


    fig


    lemon


    orange


    watermelon


 以上就是动力节点java培训机构的小编针对“Java基础学习:java优先级队列”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。


选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交