回顾Map遍历的三种方式:
今天在看老代码逻辑,看到了Map.Entry, 突然发现自己之前对于Map遍历这一块没怎么管过,平时都是把List遍历成Map然后返回就不管了,一时竟有些没看懂。。。
赶紧回头补补课
Map<String, String> map = new HashMap<String, String>();
map.put("zs", "张三");
map.put("ls", "李四");
map.put("wxe", "王小二");
//第一种:由于二次取值,效率会比第二种和第三种慢一倍
System.out.println("通过Map.keySet()遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key: "+ key + " and value: " + map.get(key));
}
//第二种
System.out.println("通过Map.entrySet()使用迭代器遍历key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//第三种:无法在for循环时实现remove等操作
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}