だからここに難問があります:
「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