Java:有没有一种方法可以使用PriorityQueue从O(n)中的数组构造最大堆?

Java:有没有一种方法可以使用PriorityQueue从O(n)中的数组构造最大堆?,java,heap,priority-queue,Java,Heap,Priority Queue,如果我错了,请纠正我,但我认为PriorityQueue(Collection c)构造函数将在时间O(n)内从集合创建一个最小堆。但是,我找不到一个可以同时传递集合和比较器(以便将最小堆转换为最大堆)的构造函数。因此,我想知道是否有一种方法可以使用PriorityQueue从O(n)中的数组(比如int数组)构造一个最大堆?否,将一组元素排列在最小堆中不会为将它们重新排列到最大堆提供任何好处。此外,您似乎假设接受集合的PriorityQueue构造函数具有O(n)渐近复杂性。这似乎是有道理的—

如果我错了,请纠正我,但我认为PriorityQueue(Collection c)构造函数将在时间O(n)内从集合创建一个最小堆。但是,我找不到一个可以同时传递集合和比较器(以便将最小堆转换为最大堆)的构造函数。因此,我想知道是否有一种方法可以使用PriorityQueue从O(n)中的数组(比如int数组)构造一个最大堆?

否,将一组元素排列在最小堆中不会为将它们重新排列到最大堆提供任何好处。此外,您似乎假设接受集合的
PriorityQueue
构造函数具有
O(n)
渐近复杂性。这似乎是有道理的——甚至有可能——但它没有文档记录,因此依赖它是不安全的。

目前没有,没有,尽管我看到一些关于核心libs dev的讨论线程正在讨论添加它。