【发布时间】:2016-10-12 06:42:43
【问题描述】:
下面是迭代器和for循环的场景:
1) 使用迭代器:
ihm.put("Zara", new Double(3434.34));
ihm.put("Mahnaz", new Double(123.22));
ihm.put("Ayan", new Double(1378.00));
ihm.put("Daisy", new Double(99.22));
ihm.put("Qadir", new Double(-19.08));
// Get a set of the entries
Set set = ihm.entrySet();
// Get an iterator
Iterator i = set.iterator();
// Display elements
while(i.hasNext()) {
Map.Entry me = (Map.Entry)i.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
System.out.println();
======================================
使用 For 循环:
HashMap<String, Integer> map = new HashMap<String, Integer>();
//Adding key-value pairs
map.put("ONE", 1);
map.put("TWO", 2);
map.put("THREE", 3);
map.put("FOUR", 4);
//Adds key-value pair 'ONE-111' only if it is not present in map
map.putIfAbsent("ONE", 111);
//Adds key-value pair 'FIVE-5' only if it is not present in map
map.putIfAbsent("FIVE", 5);
//Printing key-value pairs of map
Set<Entry<String, Integer>> entrySet = map.entrySet();
for (Entry<String, Integer> entry : entrySet)
{
System.out.println(entry.getKey()+" : "+entry.getValue());
}
}
在上述两种情况下,迭代器和 for 循环都在做同样的工作。所以谁能告诉我它们之间有什么区别,什么时候可以使用迭代器和 for 循环。
【问题讨论】:
-
唯一的区别是使用迭代器就像用鼻子呼吸,使用for循环就像用嘴呼吸 ;)
-
可能重复 - iterator Vs for
-
第二个更清晰,类型检查。他们都在现实中使用迭代器。
标签: java collections hashmap