Hi,
The upstream source of PriorityBlockingQueue is the concurrency library
maintained by Doug Lea.
Noting this suggestion to the Concurrency Interest mailing list is
recommended. [1]
Regards, Roger
[1] http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest
On 5/24/23 2:51 PM, Viktor Klang wrote:
Sounds very reasonable.
------------------------------------------------------------------------
*From:* core-libs-dev <core-libs-dev-r...@openjdk.org> on behalf of
Aleksei Ivanov <alexey.iva...@oracle.com>
*Sent:* Wednesday, 24 May 2023 20:03
*To:* Robin Gong <irobing...@gmail.com>; core-libs
<core-libs-dev@openjdk.org>
*Subject:* Re: Remove unnecessary method call in PriorityBlockingQueue
Hi Robin,
This belongs in core-libs.
On 24/05/2023 16:50, Robin Gong wrote:
Hi,
Recently, I found this constructor in PriorityBlockingQueue:
public PriorityBlockingQueue(int initialCapacity,
Comparator<? super E> comparator) {
if (initialCapacity < 1)
throw new IllegalArgumentException();
this.comparator = comparator;
this.queue = new Object[Math.max(1, initialCapacity)];
}
I believe we could change 'Math.max(1, initialCapacity)' to
'initialCapacity'. Since initialCapacity must be greater or equal to 1.
It looks reasonable to me.
--
Regards,
Alexey
And also that's how PriorityQueue running.
public PriorityQueue(int initialCapacity,
Comparator<? super E> comparator) {
// Note: This restriction of at least one is not actually
needed,
// but continues for 1.5 compatibility
if (initialCapacity < 1)
throw new IllegalArgumentException();
this.queue = new Object[initialCapacity];
this.comparator = comparator;
}
Best regarts,
Robin Gong