JAVA 堆的使用 (大顶堆,小顶堆)即优先队列 再TopK 和求中位数中用此种数据结构

  学习JAVA这么久了(从时间跨度上来看),一直磨磨蹭蹭的没有写博客,希望今天开始,不如正规吧

  JAVA中有一种数据结构,堆(优先队列)   PiorityQueue 实现Queue接口, 添加到之中的数据默认采用升序排序,

可以理解为一个特殊的栈,但是每次再栈顶的都是最小的数据, 也可自己设置优先顺序

具体的类方法如下所示

 

默认构造时采用的时升序,如果要采用降序的顺序(即实现大顶堆),构造方法如下

PriorityQueue<?>  queue = new PriorityQueue<>(

Collections.reverseOrder()

)

还有一种比较方便时髦的,似乎叫做lamba表达式:

降序顺序(大顶堆)PriorityQueue<?> queue = new PriorityQueue<>((x, y) -> (y - x));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值