最近刷到Leetcode23 合并K个升序链表,这一问题需要用到优先队列PriorityQueue,这里对PriorityQueue的用法进行一些记录:
1. PriorityQueue介绍
Java中PriorityQueue 实现的是Queue 接口,可以使用Queue的方法和自定义方法;其通过完全二叉树构造的小顶堆实现。对于可比较的元素(natural ordering)直接进行比较;对于自定义类的比较,通过构造时传入的比较。
2. 常用方法
public boolean add(E e); //在队尾插入元素,插入失败时抛出异常,并调整堆结构
public boolean offer(E e); //在队尾插入元素,插入失败时抛出false,并调整堆结构
public E remove(); //获取队头元素并删除,并返回,失败时前者抛出异常,再调整堆结构
public E poll(); //获取队头元素并删除,并返回,失败时前者抛出null,再调整堆结构
public E element(); //返回队头元素(不删除),失败时前者抛出异常
public E peek()