Java 优先队列(PriorityQueue)总结
Posted 程序员超时空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 优先队列(PriorityQueue)总结相关的知识,希望对你有一定的参考价值。
PriorityQueue 实现的是 Queue 接口 ,可以使用 Queue 提供的方法,以及自带的方法。
1、PriorityQueue概述
Java PriorityQueue 实现了 Queue 接口,不允许放入 null 元素;其通过堆实现,具体说是
通过完全二叉树(complete binary tree)实现的小顶堆(任意一个非叶子节点的权值,都不
大于其左右子节点的权值),也就意味着可以通过数组来作为PriorityQueue 的底层实现,
数组初始大小为11;也可以用一棵完全二叉树表示。
优先队列的作用是能保证每次取出的元素都是队列中权值最小的(Java的优先队列每次
取最小元素,C++的优先队列每次取最大元素)。这里牵涉到了大小关系,元素大小的评判
可以通过元素本身的自然顺序(natural ordering),也可以通过构造时传入的比较
(Comparator,类似于C++的仿函数)。
2、常用方法总结
<以上是关于Java 优先队列(PriorityQueue)总结的主要内容,如果未能解决你的问题,请参考以下文章