详解PriorityQueue

  • PriorityQueue 是 Java 集合框架中的一个类,它实现了 优先级队列 的数据结构。优先级队列是一种特殊的队列,其中的元素按照优先级顺序出队,而不是按照插入顺序(FIFO)。默认情况下,PriorityQueue 是一个 最小堆,即优先级最小的元素最先出队。

1. PriorityQueue 的特点

  • 基于堆实现PriorityQueue 通常基于 二叉堆(最小堆或最大堆)实现。

  • 无界队列PriorityQueue 没有容量限制(除非受到系统资源的限制)。

  • 不允许 null 元素: 插入 null 会抛出 NullPointerException

  • 非线程安全: 如果需要线程安全的优先级队列,可以使用 PriorityBlockingQueue

  • 自然排序或自定义排序: 元素可以按照自然顺序(如整数从小到大)排序,也可以通过 Comparator自定义排序规则。


2. PriorityQueue 的常用方法

添加元素

  • add(E e): 添加元素,如果队列已满则抛出异常。

  • offer(E e): 添加元素,如果队列已满则返回 false

移除元素

    你可能感兴趣的:(算法,数据结构,java)