私はハッシュテーブル内で衝突を記録して表示するプログラムを持っています。私は衝突を記録しました。どのデータが衝突したのか、どこにあるのか、どこにあるのかを記録しました。ペイントコンポーネントのJAVA無限ループ?
問題はpaintcomponentが無限ループに詰まっているようです。私はwhileループのどの部分か分かりません。
whileループを削除しようとしましたが、コンパイル時にエラーが発生します。 私はまた、ifステートメント内でリターンを入れようとしましたが、それはクラッシュのx量のうち1つの値しか与えません。
は、ここに私のコードです:
public void paintComponent (Graphics g) {
int xpos = 20, ypos = 30;
crash = 0;
g.setFont(plainfont);
g.drawString("Hash Crash count is: " + crash, xpos, ypos);
while(hashtable != null){
for (String name : names) {
int start = hashtable.hashFunc3(name); //locates where data must be
int end = hashtable.locateCrash(name); //locates where data is found
if (start != end) {
ypos += 20;
crash++;
g.drawString("Hash Crash:", xpos, ypos);
g.drawString(name, 100, ypos);
g.drawString("should be at", 200, ypos);
g.drawString(Integer.toString(start), 300, ypos);
g.drawString("found at", 350, ypos);
g.drawString(Integer.toString(end), 400, ypos);
//return;
}
}
}
}
あなたの助けと入力は大歓迎です!
「ハッシュテーブル」をヌル値に設定するものは何ですか? –
どのクラスタイプが 'hashtable'変数であり、この条件が' while(hashtable!= null) 'に合致するか?示されたコードから、実際にどこにエラーがあるのかを言うことは不可能です。 – MaxZoom
'while'ではなく' if(hashtable!= null) 'です。明らかにハッシュテーブルは後で作成されます。 –