我正在更新一些我之前没有触及的旧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已被弃用。我应该只为每个循环使用一个吗?
非常感谢任何建议。
答案 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();
}
}