Java 从Comparator和Collection创建PriorityQueue
我有一个集合(一个特定的集合),并希望从中创建PriorityQueue。我还需要我的自定义比较器,但没有这样的构造函数 PriorityQueue(Collection c) PriorityQueue(int initialCapacity, Comparator comparator) 优先级队列(集合c) 优先级队列(int initialCapacity,Comparator-Comparator)Java 从Comparator和Collection创建PriorityQueue,java,android,Java,Android,我有一个集合(一个特定的集合),并希望从中创建PriorityQueue。我还需要我的自定义比较器,但没有这样的构造函数 PriorityQueue(Collection c) PriorityQueue(int initialCapacity, Comparator comparator) 优先级队列(集合c) 优先级队列(int initialCapacity,Comparator-Comparator) 有没有办法先从集合中创建PriorityQueue,然后再添加Comparator?
有没有办法先从集合中创建PriorityQueue,然后再添加Comparator?如果否,什么是“手动”添加它的最有效方法?您可以使用第二个构造函数,然后调用
addAll(Collection col)
方法如果您的集合是带有比较器的SortedSet,则PriorityQueue将自动将自定义比较器设置为PriorityQueue
第403行:
基本上,您有两个选择:
如果省略时间复杂度,那么就可以了。请注意,addAll costs
O(nlogn)
其中n
是addAll()的参数大小。如果你想要O(n)
buildtime,那么addAll()
不是你应该走的路。