遍历Map和遍历List还是有很大区别的,初学者没接触过map的话可能看不太懂代码,我这里简单说一下。
Map中存储元素是是以“键值对”的方式,也就是key-value对。
Map.Entry 是Map中的一个接口,它的用途是表示一个映射项(里面有Key和Value),如下图所示:
所以遍历的时候我们可以通过Map的entrySet()方法,它返回一个实现Map.Entry接口的对象集合,每个entry对象中都存储这一对K-V对。我们就可以通过这个对象调用getKey()和getValue()轻松拿到需要的key和value
下面代码中的第二三种遍历方式就用到了entrySet()方法
//Map集合的四种遍历方式
public class MapDemo {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("tom",11);
map.put("cindy",22);
map.put("marry",42);
//1、第一种遍历方法,得到key-->再拿到value
for(String key : map.keySet()){ //keySet()返回此映射中包含的键的Set视图
System.out.print(key+"="+ map.get(key)+" ");
}
//2、第二种遍历方法,通过Map.entrySet使用iterator遍历key和value
Set<Map.Entry<String, Integer>> entries = map.entrySet(); //entrySet()返回此映射中包含的entry的Set视图
Iterator<Map.Entry<String, Integer>> iterator = entries.iterator();
while (iterator.hasNext()){
Map.Entry<String, Integer> next = iterator.next();
System.out.print(next.getKey()+"="+next.getValue()+" ");
}
//3、第三种遍历方式,通过Map.entrySet遍历key和value
for (Map.Entry<String,Integer> entry : map.entrySet()){
System.out.print(entry.getKey()+"="+entry.getValue()+" ");
}
//4、第四种遍历方式,通过Map.values()遍历所有的value,但不能遍历key
for (Integer integer: map.values()){
System.out.print("value="+integer+" ");
}
}
}