Разница между PriorityQueue и TreeSet в Java?

Я пытаюсь понять, когда использовать две структуры данных. Насколько я понял, PriorityQueue также реализуется как дерево, так как в документации указано, что avg time для insert remove и содержит O (logn). Дерево также обеспечивает такую ​​же временную сложность. Плюс обе они несинхронизированы. И я могу написать для них компаратор, чтобы действовать как куча минут или куча.

Может ли кто-нибудь указать, в каких условиях я использую эти два набора.

Спасибо,

Ответ 1

Если вам нужна очередь, используйте PriorityQueue. Если вам нужен набор, используйте TreeSet. TreeSet имеет уникальные элементы и не предлагает API очереди. Очередь не предлагает API набора и допускает несколько равных элементов.