Java中PriorityQueue和TreeSet之间的区别?

时间:2013-05-10 17:53:04

标签: java data-structures tree

我试图了解何时使用这两种数据结构。据我所知,PriorityQueue也实现为树,因为文档说明插入删除和包含的平均时间是O(logn)。树集也提供相同的时间复杂度。另外,它们都是非同步的实现。我可以为它们编写比较器,使其像min heap或max heap一样。

有人可以指出我使用这两套的条件。

谢谢,

1 个答案:

答案 0 :(得分:25)

如果需要队列,请使用PriorityQueue。如果需要Set,请使用TreeSet。 TreeSet具有唯一元素,并且不提供队列的API。 Queue不提供Set的API,并允许多个相等的元素。