PriorityQueue优先级队列是什么意思
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"PriorityQueue优先级队列是什么意思",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PriorityQueue优先级队列是
千家信息网最后更新 2026年11月03日PriorityQueue优先级队列是什么意思
这篇文章主要讲解了"PriorityQueue优先级队列是什么意思",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PriorityQueue优先级队列是什么意思"吧!
JDK版本是1.8
特点
1.不能插入null对象
2.插入的对象支持排序。(可以自己传入比较器)
3.如果排序的结果一样的话,那么这两个的对象在队列中的位置是前后随机的
4.队列是无界的
5.线程不安全,如果安全请使用PriorityBlockingQueue
6.是一个完全二叉树来实现的最小二叉堆(非子节点的值,不大于其左右子节点),所以使用数组进行存储(父子节点的关系可以通过公式进行计算)。
主要的方法
1. add() 和 offer() 插入方法
两种方法没有什么本质的区别,add()只是把offer()方法包装一下。
if (e == null) throw new NullPointerException(); modCount++; int i = size; if (i >= queue.length) grow(i + 1);//扩容 size = i + 1; if (i == 0) queue[0] = e;//队列为空的情况下,直接放入 else siftUp(i, e); //调整节点(该方法是主要的方法),在位置i处插入e,和e的父节点比较,直到该节点大于或等于其父级或者是根。 return true;
2.peek()获取元素
获取队列头元素,但不会删除
(size == 0) ? null : (E) queue[0];
3.poll()获取元素
获取队列头元素,但会删除头元素,并且因为删除头元素,会调整队列的元素位置
if (size == 0) return null; int s = --size; //队列大小减一 modCount++; E result = (E) queue[0];//获取头元素 E x = (E) queue[s];//记录队列最后的元素 queue[s] = null;//删除队列最后的元素 if (s != 0) siftDown(0, x);//调整整个队列的元素的位置,在位置0处插入项x,和x的叶子节点比较,直到它小于或等于其子项或者是叶子 return result;
应用
有关Top K 算法的解决方案(具体可以搜索相关的资料)
感谢各位的阅读,以上就是"PriorityQueue优先级队列是什么意思"的内容了,经过本文的学习后,相信大家对PriorityQueue优先级队列是什么意思这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
队列
元素
节点
方法
位置
优先级
意思
对象
学习
调整
安全
内容
叶子
情况
排序
最小
两个
公式
只是
可以通过
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
互联网科技图片
圆梦互联网科技
互联网科技有限公司图片
互联网科技未来
互联网 科技创新
互联网 的科技创新
互联网未来科技
无线互联网科技
互联网科技美容
北京华百购互联网科技有限公司
互联网金融中的现代科技
崇明区互联网教育科技诚信经营
科技类公司包括互联网吗
互联网公司黑科技创始人
互联网科技圈年度人物
互联网公司高科技产品
互联网科技快讯热点
半导体是互联网高科技吗
神州科技互联网有限公司
互联网科技企业
互联网和科技技术
互联网金融科技委员会
科技大学互联网专业好不好
衡水科技产业互联网平台
互联网科技的全部知识
新氧科技和美国互联网有关系吗
长沙渺峰互联网科技有限公司
兰石爱特工业互联网科技分公司
互联网对科技影响