【问题标题】:Strange behaviour of ProprityQueue [duplicate]ProprityQueue 的奇怪行为[重复]
【发布时间】:2020-04-26 03:07:37
【问题描述】:

我将配置元素放入PriorityQueue。我正在通过

访问元素
for (Element e : queue) {
  ...
}

这很好用,但是在将额外的配置元素放入队列后,排序被打乱了。更奇怪的是,这取决于我将元素输入队列的顺序,排序是否正确。

【问题讨论】:

    标签: java sorting queue


    【解决方案1】:

    PriorityQueue 状态的 Javadoc

    不保证迭代器以任何特定顺序遍历优先级队列的元素。

    基本上,如果需要排序,PriorityQueue 不能在 for-each 构造中使用。

    根据有问题的代码,使用迭代的queue.poll() 调用或切换到另一个数据结构,如List,并通过Collections.sort() 明确排序。

    由于排序正确有时:一开始你很幸运​​。

    【讨论】:

      猜你喜欢
      • 2013-06-28
      • 2015-07-26
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      相关资源
      最近更新 更多