Правильно ли я понимаю, что в Java в качестве структуры данных в PriorityQueue используется бинарная куча, а конкретно реализация max-heap?
Судя по описанию метода siftUp внутри класса:
Inserts item x at position k, maintaining heap invariant by promoting x up the tree until it is greater than or equal to its parent, or is the root.
Т.е. обеспечивает продвижение добавляемого элемента в верх по дереву пока оно больше или равно своего родителя, а если так, значит в корне сидит максимальный элемент?
Голова очереди - это наименьший элемент.
Элементы упорядочиваются и в зависимости от компаратора, т. Е. не только стандартным порядком.
Реализация на основе #кучи#, а хранилище фактически массив.