Java - 浏览哈希映射

时间:2013-03-18 15:22:11

标签: java while-loop hashmap enumeration concurrenthashmap

我正在更新一些我之前没有触及的旧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();

}

它之前使用过哈希表,但我用线程安全哈希映射替换了它。 我的问题是,迭代hashmap的最佳方法是什么?因为Enumeration已被弃用。我应该只为每个循环使用一个吗?

非常感谢任何建议。

2 个答案:

答案 0 :(得分:4)

使用for-each loop for-each / enhanced loop 是为了iterating在集合/数组上引入的。但是,当且仅当您的集合实现Iterable接口时,您才能使用for-each遍历集合。

for(Map.Entry<String, Example> en: example.entrySet()){
System.out.println(en.getKey() + "  " + en.getValue());
}

答案 1 :(得分:0)

由于您只处理值:

public void testMethod() 
{
    for (Example ex : allExamples.values())
    {
        ex.doSomething();
    }
}