Scala PriorityQueue冲突解决方案?

时间:2015-02-23 21:55:33

标签: scala priority-queue

我正在开发一个使用PriorityQueue和A *的项目。在挖掘了一吨之后,我认为在我的搜索试图解决我的问题时遇到的部分问题是在PriorityQueue中。我猜测当它生成相同评分的节点时(例如一个更早,一个更晚),它将选择前一个而不是最近生成的那个。

如果得分相同,有没有人知道PriorityQueue是否优先考虑最新节点?如果没有,我怎么能这样做?

谢谢!

1 个答案:

答案 0 :(得分:2)

PriorityQueue使用堆来选择下一个元素。除此之外,它无法保证元素的排序方式。如果节点按添加顺序排序很重要,则应保留添加的项目数,并按元组(priority, -order)确定优先级。

如果你做了其他任何事情,即使它现在正常工作,也可能在任意时间中断,因为API不能保证它从相同元素中选择的方式。