更新: 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
(注:「キー0、0、0、0、、値= 0」の要素が存在します。これはstartNodeです)そのコンストラクターでは、属性がゼロで初期化されていることがわかっているので、私の主な問題は、なぜそれは起こっていますか?それらはif()から直接渡されますが、if()ではそうではありません。私の問題がより明確になることを願っています。:)