Java中的PriorityQueue和TreeSet之间的区别?

2022-09-01 15:46:19

我试图了解何时使用这两种数据结构。据我所知,它也作为一棵树实现,因为文档指出插入,删除和包含的平均时间是O(log(n))。还提供了相同的时间复杂性。另外,它们都是非同步的实现。我可以为它们编写比较器,使它们看起来像最小堆或最大堆。PriorityQueueTreeSet

有人能指出我在什么条件下使用这两套吗?


答案 1

当您需要队列时,请使用优先级队列。当您需要一个集合时,请使用树集。树集具有唯一的元素,并且不提供队列的 API。队列不提供集合的 API,并且允许多个相等的元素。


答案 2

推荐