栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java数据结构---PriorityQueue(优先队列,堆)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java数据结构---PriorityQueue(优先队列,堆)

java数据结构---PriorityQueue(优先队列,堆)

1. 什么是PriorityQueue(优先队列,堆)2. 如何使用

1. 什么是PriorityQueue(优先队列,堆)

普通的队列的性质是先进先出,元素在队列尾加入,在队头弹出。但是在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级的元素先出的行为特征。

优先队列的其他用法在此不作解释,此处只解释其作为堆的用法。

2. 如何使用

PriorityQueue默认为大根堆。

    创建大根堆
PriorityQueue heap = new PriorityQueue<>();
    创建小根堆 (重点)
// 方法一
// lambda表达式
PriorityQueue heap = new PriorityQueue<>((a, b) -> a.val - b.val);
// 方法二
// 自定义比较器,实现小根堆
PriorityQueue heap=new PriorityQueue(new Comparator(){
	public int compare(ListNode o1,ListNode o2) {
		return o1.val-o2.val;
	}
});
    返回堆顶元素但不删除
heap.peek();
    返回堆顶元素并删除
heap.poll();
    往堆里插入一个元素
heap.add();
    返回堆是否为空
heap.isEmpty();
    返回元素个数
heap.size();
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709077.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号