On Sun, 17 Dec 2023 15:20:50 GMT, Chen Liang <li...@openjdk.org> wrote:

>> Valeh Hajiyev has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   updated the javadoc
>
> You should update the GitHub PR title to `6356745: (coll) Add 
> PriorityQueue(Collection, Comparator)` to match the JBS issue title.
> 
> In addition, you will need a [CSR](https://wiki.openjdk.org/display/csr) as 
> the bot tells you. Its prompt is like:
> 
> Summary
> A concise description of the proposed change. The description should be one 
> to two sentences long and written to be reusable in documents aggregating 
> changes for a release.
> 
> Problem
> A brief description of the problem, optionally including the motivation for 
> developing a solution.
> 
> Solution
> An overview of the solution. Alternative solutions may be discussed; links to 
> rationale documents or review threads welcome to provide additional 
> background to reviewers.
> 
> Specification
> The detailed changes. Acceptable normative formats include inline patches, 
> attached webrevs, and attached specdiffs. The names of attached files are 
> recommended to include a bug id. References to external webservers, such as 
> http://cr.openjdk.java.net/, can be provided as informative supplements for 
> the convenience of reviewers, but must be accompanied by a normative form of 
> the specification directly associated with the CSR issue to satisfy archival 
> purposes.
> 
> 
> I can create one for you, and here's my proposed CSR content:
> 
> Summary
> Add a new constructor to PriorityQueue that takes a Collection and a 
> Comparator.
> 
> Problem
> Creating a PriorityQueue with an existing Collection and a custom Comparator 
> is inefficient; it can use heapify which is `O(N)` in time complexity, but it 
> currently has to be done via `addAll`, which has `O(N log N)` time complexity.
> 
> Solution
> Add a new constructor `PriorityQueue(Collection, Comparator)` to explicitly 
> allow the heapify process when a custom comparator is given. This constructor 
> would be in pair with `PriorityQueue(Collection)`, as all other PriorityQueue 
> constructors come in natural-order and comparator pairs (`()` and 
> `(Comparator)`, `(int)` and `(int, Comparator)` ones)
> 
> An alternative solution would be to override `addAll(Collection)` to call 
> `initFromCollection` when the PriorityQueue is empty. This would have the 
> same effect as the new constructor and is applicable to all empty 
> PriorityQueues, but doesn't solve the parity issue mentioned above.
> 
> Specification
>     --- a/src/java.base/share/classes/java/util/PriorityQueue.java
>     +++ b/src/java.base/share/classes/java/util/PriorityQueue.java
>     @@ -209,6 +209,25 @@ else if (c instanceof PriorityQueue<?>) {
>              }
>          }
>      
>     +    /**...

@liach thanks for the help. I updated the PR title, also your proposed CSR 
content looks good to me. would you mind creating it with your proposed content?

-------------

PR Comment: https://git.openjdk.org/jdk/pull/17045#issuecomment-1863481650

Reply via email to