何时优先级为PriorityQueue?

时间:2016-10-19 13:28:44

标签: java android path-finding

我正在为Android实现A * -pathfinding算法的一个版本。我使用PriorityQueue来管理我的openList

在某些情况下,我更新其中一个队列条目的优先级 - 属性。如果我调用remove(),要在更新的队列上获取 head -Object,期望获得更新的条目,我会得到错误的结果。似乎没有正确确定更新队列的优先级。

我找到的唯一解决方案是删除特定条目,更新值并将其重新放入:

openList.remove(objectToBeUpdated);
objectToBeUpdated.setPriorityAttribute(newValue);
openList.add(objectToBeUpdated);

在添加对象时,队列确实优先考虑,而不是通过轮询/删除它们?

除了删除和添加它之外还有其他方法吗?我认为这是一个肮脏的解决方案。或者这只是PriorityQueue的行为,我必须处理它?<​​/ p>

0 个答案:

没有答案