我知道這可能是一個簡單的問題,但我不想錯過任何小而重要的觀點。迭代HashMap的兩種方法之間有什麼區別
請解釋什麼是遍歷HashMap
的方法之間的區別在於:
HashMap<Integer, Integer> asd1 = new HashMap<Integer, Integer>();
asd1.put(1,11);
asd1.put(2,22);
asd1.put(3,33);
// approach 1
for(int i:asd1.keySet())
{
System.out.println(i+" : "+asd1.get(i));
}
// approach 2
Iterator it = asd1.entrySet().iterator();
while (it.hasNext())
{
Map.Entry pairs = (Map.Entry)it.next();
System.out.println(pairs.getKey() + " : " + pairs.getValue());
it.remove(); // avoids a ConcurrentModificationException
}
第一種方法是用戶友好的,沒有太多的實現細節。兩者都使用迭代器。 –
A鍵設置它也是Iterable(通過Set),這意味着它也可以生成Iterable。比較迭代迭代器的「不同方法」會更好:使用* enchanted for-loop *或更多手動hasNext循環。通過混合鍵集/入口集合,問題僅僅是複雜的,焦點丟失了。 – user2864740
http://stackoverflow.com/questions/3328672/what-are-the-advantages-of-enhanced-for-loop-and- iterator-in-java – user2864740