3

このコードは無限ループを生成しています:

        for (String element : friendSet) {
        resultNum ++;
        System.out.println("  Result # " + resultNum + " = " + element);
        System.out.print(" friendSet.size() = " + friendSet.size());
    }

friendSet.size()= 2923ですが、プログラムを強制的に停止するまで、結果は数万に上り続けます。例えば:

friendSet.size() = 2923  Result # 7652 = Charlie
friendSet.size() = 2923  Result # 7653 = Jamie
friendSet.size() = 2923  Result # 7654 = Smith

何が起こっている?

4

2 に答える 2

1

舞台裏: Java の foreach ループは、オブジェクトを使用するだけですiterator

friendSetある種のカスタム反復可能なコレクションですか? もしそうなら、イテレータの実装は正しくありません。

于 2012-12-17T20:26:39.457 に答える
0

for ループが含まれていたメソッドが複数回呼び出されていました。助けてくれてありがとう。私の側の愚かなエラー。

于 2012-12-17T22:04:12.083 に答える