【JDK】Priority Queue 堆实现源码详解

  • 介绍

Java 的优先级队列始于 1.5版本,出自Josh Bloch和Doug Lea两位大师的手笔。

优先级队列是一个很重要的数据结构,像最短路的dijkstra之类的图算法,以及调度等等都依赖于优先级队列。

实现优先级队列的数据结构堆也是最基本也是最重要的一种树状数据结构,理解好堆对理解好树,尤其是后续的各种旋转节点的操作很有帮助。


掌握优先级队列很重要,而这份代码出自java 团队最负盛名的两位大师,拜读的意义也是不言而喻。

如果不清楚Priority Queue具体是做什么的,先看这个链接。

Java API 链接

我们要分析的代码为:util.PriorityQueue.java

网络上面有几篇分析这份代码的文章,但绝大部分都是走一些流程,没有点出来最重要的技巧和知识点,以及提炼一些值得我们学习的地方,希望我的一些浅见能够让大家更接近这些部分。

  • 接口

优先级队列主要是以下几个接口:

void enqueue(E ele);

E dequeue();

E peek();

额外的一个,不属于基本操作的:

E delete(E ele);


如果我们抛开作者已经使用的堆这个数据结构



-----


未完成,待续



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值