>PriorityQueue 依靠底层二叉堆(默认最小堆)实现优先级。通过“上浮”(添加时)和“下沉”(删除时)算法维护堆结构,确保队首始终是最高优先级元素。 这是一个非常核心且重要的数据结构问题。 (优先队列)实现其“优先级”的核心在于它底层使用了一种特殊的数据结构——二叉堆(Binary Heap)。 简单来说,你可以分三步来理解: 1. 底层数据结构:它用的是什么? 2. 核心操作:如何通过操作这个结构来维持优先级? 3. 优先级定义:它怎么知道谁的优先级更高? --- 1. 底层数据结构:二叉堆(Binary Heap) Java 的 默认实现是一个最小堆(Min-Heap)。堆是一种特殊的完全二叉树,它满足两个关键属性: 结构属性(Shape Property):它是一棵完全二叉树。这意味着树的每一层都是满的,除了最后一层,最后一层的节点都尽可能地靠左排列。这个特性使得我们可以非常高效地用数组来存储它,而不需要像普通树那样使用指针。 父节点索引 的左子节点索引是 父节点索引 的右子节点索引是 子节点索引 的父节点索引是 堆属性(Heap Property):对于最小堆来...