map遍歷的兩個維度:
遍歷的方法(foreach還是iterator)
遍歷的元素(只遍歷key或者value還是兩者都需要)
- for each遍歷key&value
for(Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + ", " + entry.getValue());
}
- for each遍歷key 或者map
for(Integer i : map.keySet()) {
System.out.println(i);
}
for(String s : map.values()) {
System.out.println(s);
}
- 迭代器遍歷
for(Iterator<Map.Entry<Integer, String >> i = map.entrySet().iterator(); i.hasNext();) {
Map.Entry<Integer, String > entry = i.next();
System.out.println(entry.getKey() + ", " + entry.getValue());
}
for(Iterator i = map.entrySet().iterator(); i.hasNext();) {
Map.Entry entry = (Map.Entry)i.next();
Integer n = (Integer)entry.getKey();
String s = (String)entry.getValue();
System.out.println(n + ", " + s);
}
- 最後一種比較奇怪的方法是foreach遍歷key,然後在循環中get value。這種辦法效率很低,不推薦使用