Java 优先队列(PriorityQueue)总结

PriorityQueue 实现的是 Queue 接口 ,可以使用 Queue 提供的方法,以及自带的方法。
在这里插入图片描述

1、PriorityQueue概述

Java PriorityQueue 实现了 Queue 接口,不允许放入 null 元素;其通过堆实现,具体说是

通过完全二叉树(complete binary tree)实现的小顶堆(任意一个非叶子节点的权值,都不

大于其左右子节点的权值),也就意味着可以通过数组来作为PriorityQueue 的底层实现,

数组初始大小为11;也可以用一棵完全二叉树表示。

优先队列的作用是能保证每次取出的元素都是队列中权值最小的(Java的优先队列每次

取最小元素,C++的优先队列每次取最大元素)。这里牵涉到了大小关系,元素大小的评判

可以通过元素本身的自然顺序(natural ordering),也可以通过构造时传入的比较

(Comparator,类似于C++的仿函数)。

2、常用方法总结

<

猜你喜欢

转载自blog.csdn.net/m0_54864585/article/details/125128004