Есть 2 различия, на которые я хотел бы указать (и это может быть более актуально для Разница между PriorityQueue и TreeSet в Java? , поскольку этот вопрос считается дубликатом этого вопроса).
(1) PriorityQueue может иметь дубликаты, тогда как TreeSet НЕ может иметь дублирования.Поэтому в Treeset, если ваш компаратор считает 2 элемента равными, TreeSet сохранит только один из этих 2 элементов и отбросит другой.
(2) Итератор TreeSet обходит коллекцию в отсортированном порядке, тогда как PriorityQueueИтератор НЕ перемещается в отсортированном порядке.Для PriorityQueue Если вы хотите получить элементы в отсортированном порядке, вы должны уничтожить очередь путем многократного вызова remove ().
Я предполагаю, что обсуждение ограничено реализацией этих структур данных в Java.