优先级队列包含方法总是返回false,虽然elemenet存在于优先级队列中

时间:2017-11-28 08:12:59

标签: java collections contains priority-queue

优先级队列包含方法始终返回false,尽管优先级队列中存在元素。我不知道如何以及在何处覆盖比较方法。这是使用邻接List的Dijkstra算法的程序。 如何在此代码中实现@Override比较方法。

bash-4.1$ ./log2.py
rajeshm : 5
navit : 780
akaul : 2
pankaja : 1
vishalm : 2

}

输出没有显示任何错误并返回正确的结果但是发生了一些错误并且包含方法无效。请建议正确的方法。

1 个答案:

答案 0 :(得分:0)

您应该以与equals实施一致的方式覆盖AdjListNode(和hashCode中的equals方法,但在此特定情况下我相信这种方法不是直接调用的,但它是一种很好的做法,可以防止将来发生很多问题。)

contains方法需要此方法来检查队列中的两个对象是否相同,而Object中的默认实现仅检查它们是否是完全相同的实例,而算法中并非如此(快速浏览)