当前位置:网站首页>PriorityQueue类的使用及底层原理
PriorityQueue类的使用及底层原理
2022-08-04 19:51:00 【像你这样的】
目录
Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示
上面数组对应的完全二叉树是
从上面二叉树这个图中, 我们可以发现规律 :
如果一个节点对应的数组下标是index, 则我们可以计算出他的左节点的数组下标, 右节点的数组下标, 父节点的数组下标
左节点的数组下标 : index * 2 + 1
右节点的数组下标 : index * 2 + 2
父节点的数组下标 : (index - 1) / 2
因此我们可以简单的获取值的左右节点和父节点的值, 用于值与值间的对比, 替换
add()方法的底层原理 :
add()方法中调用的就是offer()方法, 直接看offer()方法
poll()方法的底层原理 :
边栏推荐
猜你喜欢
ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
面试官:JVM运行时数据区包含哪几部分?作用是啥?
Exploration and Practice of Database Governance
刷题-洛谷-P1307 数字反转
Ant Group's time series database CeresDB is officially open source
Polygon zkEVM 基本概念
前3名突然变了,揭秘 7 月编程语言最新排行榜
小软件大作用 | 如何省时省力进行Gerber图层快速对比?
How to promote the implementation of rural revitalization
从卖产品到卖“链路”:20条策略 解读直播带货迭代玩法
随机推荐
c sqlite...
Differences in the working mechanism between SAP E-commerce Cloud Accelerator and Spartacus UI
蚂蚁集团时序数据库CeresDB正式开源
华为WLAN技术:AP上线及相关模板的配置实验
C#将对象转换为Dictionary字典集合
二叉树是否对称
泰山OFFICE技术讲座:底纹、高亮、边框的关系
Highlights of some performance tests
阿里的arthas使用,入门报错:Unable to attach to 32-bit process running under WOW64
Switch node version and switch npm source tool
入门:人脸专集1 | 级联卷积神经网络用于人脸检测(文末福利)
【有奖征文】秋招特训,打造你的专属产品体验
简易数据缓存层的建立
Regular expression is incomplete
正畸MIA微种植体支抗技术中国10周年交流会在沈举办
备忘录模式
完善的交叉编译环境记录 peta 生成的shell 脚本
EasyUi常用代码
Ant Group's time series database CeresDB is officially open source
SQL Server 遇到报错解决办法--更新中