Java中PriorityQueue和TreeSet有什么区别?

29

我试图理解何时使用这两种数据结构。据我的了解,PriorityQueue也是一棵树实现的,因为文档说明插入、删除和包含的平均时间复杂度为O(log(n))。同样地,TreeSet也提供了相同的时间复杂度,并且它们都是不同步的实现。此外,我可以编写比较器使它们像最小堆或最大堆一样工作。

有人能指出在什么情况下我使用这两个集合吗?

1个回答

44

当你需要一个队列时,请使用PriorityQueue。当你需要一个集合时,请使用TreeSet。TreeSet具有唯一的元素,不提供队列的API。队列不提供集合的API,并且允许存在多个相等的元素。


除了重复元素外,它们都保留相同的顺序吗?还是其他 API 方法和重复支持有所不同? - Kanagavelu Sugumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接