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)总结的主要内容,如果未能解决你的问题,请参考以下文章

Java Collection - PriorityQueue 优先队列

Java的优先队列PriorityQueue详解

Java 优先队列(PriorityQueue)总结

java PriorityQueue(优先级队列)

java PriorityQueue优先级队列使用

Java数据结构及算法实战系列011:数组实现的优先级队列PriorityQueue