私はJavaでハッシュテーブルを作成しています。 検索機能では、IF文で比較しています。それは比較をしていません。Javaで比較が機能しない場合
ここは私のコードの一部です。
while (table[pos]!=null) {
if (table[pos]==key) {
System.out.println("SEARCH "+key+" at INDEX "+home);
return;
}
else {pos=h(home+p(i));
i++;
}
}
System.out.println("Failed to find "+key+".");
return;
}
それはテーブル[POS]とキーが同じであっても動作しません! しかし、私は非常に単純な代入変数を別の変数に追加します。それは動作します!なぜそれが動作するのかわかりません。私は、table[pos]
とkey
はInteger
両方(あなたがwhile
文でnull
にそれを比較しているのでtable[pos]
は、参照型でなければならない)であれば、それはまあ
while (table[pos]!=null) {
int x = table[pos];
if (x==key) {
System.out.println("SEARCH "+key+" at INDEX "+home);
return;
}
else {pos=h(home+p(i));
i++;
}
}
System.out.println("Failed to find "+key+".");
return;
}
これは
HashMap
は内部的にそれをしない方法の例です。あなた自身の正確な問題(現時点では不明)、つまり入力、実際の出力、期待される出力、そして問題自体を示す小さな実行可能な例を今私たちに提供しています。適切なコードを立てることで、問題をより明確に特定するのに役立ちます:) – SomeJavaGuy"それは何も比較していません"とはどういう意味ですか?あなたはそれを行ごとにデバッグしたとき何が起こったのですか? –
テーブルは未定義です。 [最小限の完全で検証可能な例]を追加してください(http://stackoverflow.com/help/mcve)。 – Clijsters