Map.Entry存储了Key,Value两个,所以可以直接通过遍历key的同时,通过key寻找value,也可以通过遍历Entry的同时,直接获取每个Entry对应的key和value,第二种方式高效一些,第一种方式每次遍历一个key的同时还要查找一次value,这个地方费时了!!迭代器的遍历方式可以用于同时遍历两个集合的情况,如果单纯遍历一个集合,使用方法1和方法2即可。推荐使用方法2.
public class TestCode {
public static void main(String[] args) {
map_for_each();
}
public static void map_for_each(){
Map m = new linkedHashMap<>();
m.put("a", 97);
m.put("b", 98);
m.put("c", 99);
System.out.println("方式1:keySet关键字遍历");
for (var item : m.keySet())
{
System.out.println("key = " + item + ",value = " + m.get(item));
}
System.out.println("方式二:entrySet-实体遍历");
for (var item : m.entrySet())//item 是Map.Entry 类型
{
String key = item.getKey();
Integer value = item.getValue();
System.out.println("key = " + key + ",value = " + value);
}
System.out.println("方式三:entrySet-迭代器遍历");
for (var it = m.entrySet().iterator();it.hasNext();){
Map.Entry entry = it.next();
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println("key = " + key + ",value = " + value);
}
}
}



