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();

}

它以前使用过哈希表,但我已将其替换为线程安全哈希表。我的问题是,迭代哈希图的最佳方法是什么?因为枚举已被弃用。我应该只为每个循环使用一个吗?

任何建议将不胜感激。

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 回答