PriorityQueue

Vitaly Davidovich vitalyd at gmail.com
Thu May 14 16:06:14 UTC 2015


Ok, understood.

Given PQ already works with Collection, this seems like it should be
trivial to add.  In fact, the constructor taking a SortedSet seems
superfluous since it's just using that interface to grab the comparator;
indeed, a bit puzzling why a (Collection, Comparator) ctor wasn't there to
begin with as it's more to the point.



On Thu, May 14, 2015 at 11:52 AM, Brett Bernstein <brett.bernstein at gmail.com
> 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 gmail.com>
> 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 gmail.com> 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 gmail.com>
>>> 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 gmail.com>
>>>> 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