死磕 java集合之PriorityQueue源码分析
死磕 java集合之PriorityQueue源码分析问题(1)什么是优先级队列? (2)怎么实现一个优先级队列? (3)PriorityQueue是线程安全的吗? (4)PriorityQueue就有序的吗? 简介优先级队列,是0个或多个元素的集合,集合中的每个元素都有一个权重值,每次出队都弹出优先级最大或最小的元素。 一般来说,优先级队列使用堆来实现。 还记得堆的相关知识吗?链接直达【拜托,面试别再问我堆(排序)了!】。 那么Java里面是如何通过“堆”这个数据结构来实现优先级队列的呢? 让我们一起来学习吧。 源码分析主要属性// 默认容量private static final int DEFAULT_INITIAL_CAPACITY = 11;// 存储元素的地方transient Object[] queue; // non-private to simplify nested class access// 元素个数private int size = 0;// 比较器private final Comparator<? super E> comparator;/...