大顶堆和小顶堆

PriorityQueue(优先队列)

  1. 是一个基于优先级堆的无界优先级队列,底层实现是一棵完全二叉树
  2. 不允许使用 null 元素
  3. 不允许插入不可比较的对象,会导致 ClassCastException。
  4. 优先级队列是无界的,但是有一个内部容量,默认容量为11,控制着用于存储队列元素的数组大小。它通常至少等于队列的大小。随着不断向优先级队列添加元素,其容量会自动增加
  5. PriorityQueue 线程不安全,想线程安全用 PriorityBlockingQueue 类

实现小顶堆

PriorityQueue<Integer> minheap = new PriorityQueue<Integer>(); 

实现大顶堆

PriorityQueue<Integer> maxheap = new PriorityQueue<Integer>(new Comparator<Integer>(){ 
    @Override
    public int compare(Integer i1,Integer i2){
        return i2-i1;
    }
});

PriorityQueue<Integer> maxheap = new PriorityQueue<>((i1, i2) -> i2 - i1);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值