我试图理解何时使用这两种数据结构。据我的了解,PriorityQueue
也是一棵树实现的,因为文档说明插入、删除和包含的平均时间复杂度为O(log(n))。同样地,TreeSet
也提供了相同的时间复杂度,并且它们都是不同步的实现。此外,我可以编写比较器使它们像最小堆或最大堆一样工作。
有人能指出在什么情况下我使用这两个集合吗?
我试图理解何时使用这两种数据结构。据我的了解,PriorityQueue
也是一棵树实现的,因为文档说明插入、删除和包含的平均时间复杂度为O(log(n))。同样地,TreeSet
也提供了相同的时间复杂度,并且它们都是不同步的实现。此外,我可以编写比较器使它们像最小堆或最大堆一样工作。
有人能指出在什么情况下我使用这两个集合吗?
当你需要一个队列时,请使用PriorityQueue。当你需要一个集合时,请使用TreeSet。TreeSet具有唯一的元素,不提供队列的API。队列不提供集合的API,并且允许存在多个相等的元素。