0

だからここに難問があります:

「kb」は java.util.Hashtable を拡張したクラスのインスタンス キーは文字列、格納される値は「IntelCard」というクラスのもの

このコードはキーを抽出し、テーブルからデータを出力しようとします

    Set<String> ks = kb.keySet();
    System.out.println(ks); // is this what we thought?
    for(String key: ks){
        IntelCard ic = kb.get(key);
        String o = String.format("%-24s %24s %8s", 
                          ic.name, ic.alliance, ic.might);
        System.out.println(o);
    }

これは出力です:

[commanderv, repo, olaf, triguy]
triguy                                  galactica    10000
triguy                                  galactica    10000
triguy                                  galactica    10000
triguy                                  galactica    10000

キーのセットであるはずの「ks」のダンプが表示されます。しかし、どうやらハッシュテーブルの最後の「タッチされた」エントリのみを選択しているようです。(このテストでは、「triguy」が最後に追加された値です。)

どうにかして Hashtable セレクターをリセットする必要がありますか? コードは各値をキーで選択するため、意味がありません。鍵セット (ks) のセレクターをリセットする必要はありますか? ループはセット全体を単純に反復する必要があるため、これも意味がありません。

わからない、何が足りないの?

---v

4

2 に答える 2