Brett Bernstein brett.bernstein at
Thu May 14 15:52:34 UTC 2015

My motivation is essentially what you stated.  If someone needs to make a
heap and their data is Comparable, the corresponding constructor gives a
O(n) runtime.  If their data uses a Comparator, the corresponding runtime
(using addAll) is O(n*log(n)).  It is true they will need to copy the data
into an array to use it (as initElementsFromCollection does), but that is

On Thu, May 14, 2015 at 11:35 AM, Vitaly Davidovich <vitalyd at>

> What I mean is what could the PQ do more efficiently with your Collection
> vs you manually add()'ing each method? Are you looking to exploit the same
> behavior in its PriorityQueue(Collection), i.e. add and then heapify in
> bulk? initElementsFromCollection() doesn't seem all that efficient in the
> first place if one were to invoke this on fast paths.
> On Thu, May 14, 2015 at 11:27 AM, Brett Bernstein <
> brett.bernstein at> wrote:
>> I may not understand what static method you are suggesting.  If you have
>> a collection containing data and you wish to make it into a PriorityQueue
>> using a Comparator, there is no efficient method at the moment (addAll
>> doesn't work).
>> On Thu, May 14, 2015 at 10:11 AM, Vitaly Davidovich <vitalyd at>
>> wrote:
>>> What would be the intrinsic advantage of such a constructor? Why not a
>>> simple static util method in your own code that emulates this?
>>> sent from my phone
>>> On May 14, 2015 1:17 AM, "Brett Bernstein" <brett.bernstein at>
>>> wrote:
>>>> To whom this may concern:
>>>> I believe the list of PriorityQueue constructors has a glaring omission
>>>> that could be easily rectified.  That is, there is no constructor that
>>>> takes a Collection and a Comparator.  What steps should I go through to
>>>> get
>>>> this suggested to be added to the class?
>>>> Thanks,
>>>> Brett Bernstein

More information about the jdk9-dev mailing list