我试图了解何时使用这两种数据结构。据我所知,PriorityQueue也实现为树,因为文档说明插入删除和包含的平均时间是O(logn)。树集也提供相同的时间复杂度。另外,它们都是非同步的实现。我可以为它们编写比较器,使其像min heap或max heap一样。
有人可以指出我使用这两套的条件。
谢谢,
答案 0 :(得分:25)
如果需要队列,请使用PriorityQueue。如果需要Set,请使用TreeSet。 TreeSet具有唯一元素,并且不提供队列的API。 Queue不提供Set的API,并允许多个相等的元素。