In my opinion, the biggest advantage of array is that we can access to any element with O(1). But a queue can only be accessed from the head or the tail.
Besides, PriorityBlockingQueue is a sorted collection, which means every single add operation will cause all larger(or smaller) elements to shift. That's quite expensive.
So I don't understand why not using a linked list instead.
PriorityBlockingQueueshould use a similar strategy.