当前位置:网站首页>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()方法的底层原理 :
边栏推荐
猜你喜欢
随机推荐
刷题-洛谷-P1307 数字反转
实现菜单拖拽排序
String中的hashcode缓存以及HashMap中String作key的好处
Notepad++更改显示背景
A complete cross-compilation environment records the shell scripts generated by peta
"WAIC 2022 · hackers marathon" two ants wealth competition invited you to fight!
【Attention演变史】翻译模型seq2seq (第二弹)
Storage resource activation system to help new infrastructure
PG网络传输安全SSL介绍及使用示例
如何使用 jMeter Parallel Controller - 并行控制器以及一些常犯的错误
hash和history路由的区别
T+Cloud: A "Smart Company" for Building New Business Social Networks and Marketing Relationships
面试官:JVM运行时数据区包含哪几部分?作用是啥?
The list of Kubernetes - watch mechanism
哈佛架构 VS 冯·诺依曼架构
Defaced Fingerprint Recovery and Identification
[Sql brush topic] Query information data--Day1
WIN10系统如何开启终端
JS new一个构造器发生了什么?从零手写一个new方法
正畸MIA微种植体支抗技术中国10周年交流会在沈举办