更新:我修改了 hashCode,现在好多了。:) 但问题仍然存在...... :(
所以,也修改了我的方法:
private Node getMinNode()
{
int min = 9999999; //value
Node minNode = new Node(); //key,index
for (Node key : this.distances.keySet()) {
int minOfNode= this.distances.get(key);
System.out.println("Key "+ key +", Value = " + minOfNode);
if(minOfNode<min)
{
min= minOfNode;
minNode= key;
System.out.println("Key minNode = " + minNode + ", Value minNode = " + minOfNode);
}
}
return minNode;
}
并且有输出:(行中的空格(,,)将是一个空字符)这不是结束......这只是前几行......
Key 66601, 3546492, 3546493, 228, f, Value = 9999999
Key 77393, 3628185, 3628186, 64, t, Value = 9999999
Key 0, 0, 0, 0, , Value = 0
Key minNode = 0, 0, 0, 0, , Value minNode = 0
Key 66601, 3546492, 3546493, 228, f, Value = 9999999
Key 77393, 3628185, 3628186, 64, t, Value = 9999999
(注意:具有'Key 0, 0, 0, 0, , Value = 0' 的元素确实存在,这是 startNode)在该构造函数中,属性用零初始化,我知道,所以我的主要问题是,为什么是这样吗?它们是从 if() 中传递出来的,但是在 if() 中它们不是我希望更清楚我的问题是什么。:)