本文介绍了如何遍历 PriorityQueue?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

for (Event e : pq)

不按优先级顺序迭代.

while(!pq.isEmpty()){
  Event e = pq.poll();
}

这有效,但会清空队列.

This works but empties the queue.

推荐答案

来自 Javadocs

方法 iterator() 中提供的迭代器不保证以任何特定顺序遍历 PriorityQueue 的元素.如果需要有序遍历,可以考虑使用Arrays.sort(pq.toArray()).

可能还有其他等效的机制.

There are probably other equivalent mechanisms.

这篇关于如何遍历 PriorityQueue?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 01:43