1

しばらく触れていない古い Java コードを更新している最中で、次のコード スニペットについて簡単な質問があります。

private Map<String, Example> examples = new ConcurrentHashMap<String, Example>();

...

public void testMethod() {
    Enumeration allExamples = examples.elements();
    while (allExamples.hasMoreElements()){
    //get the next example
    Example eg = (Example) allExamples.nextElement();
    eg.doSomething();

}

以前はハッシュテーブルを使用していましたが、スレッド セーフなハッシュ マップに置き換えました。私の質問は、ハッシュマップを反復処理する最良の方法は何ですか? 列挙は廃止されたため。for each ループを使用する必要がありますか?

アドバイスをいただければ幸いです。

4

2 に答える 2

4

はい、 for-each ループを使用します。for-each/enhanced ループiteratingは、コレクション/配列の目的で導入されました。ただし、コレクションがIterableインターフェイスを実装している場合にのみ、 for-each を使用してコレクションを反復処理できます。

for(Map.Entry<String, Example> en: example.entrySet()){
System.out.println(en.getKey() + "  " + en.getValue());
}
于 2013-03-18T15:23:53.887 に答える
0

値のみを処理するため:

public void testMethod() 
{
    for (Example ex : allExamples.values())
    {
        ex.doSomething();
    }
}
于 2013-03-18T15:26:42.603 に答える