Internally, PriorityQueue is implemented as a min-heap, so the only guarantee that is made is that the first element is the smallest. After you remove the first element, the queue is re-heaped so that the next element is the smallest again. In order to retrieve elements in order, you have to keep removing the first element from the queue. You can do this using the poll() method.
The mind is a strange and wonderful thing. I'm not sure that it will ever be able to figure itself out, everything else, maybe. From the atom to the universe, everything, except itself.