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。这种办法效率很低,不推荐使用