Java中PriorityQueue和TreeSet之间的区别?

Fox*_*Fox 17 java tree data-structures

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

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

谢谢,

JB *_*zet 26

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

  • 一个TreeSet中没有两个相同的元素 (2认同)