Ben Evans benjamin.john.evans at
Thu May 14 16:01:53 UTC 2015

That sounds entirely plausible & will be of interest.

Do you have a patch the community can review & contribute to?



On Fri, May 15, 2015 at 12:52 AM, Brett Bernstein
<brett.bernstein at> wrote:
> 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
> unavoidable.
> On Thu, May 14, 2015 at 11:35 AM, Vitaly Davidovich <vitalyd at>
> wrote:
>> 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