package cn.jdbc.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry; 
/**
 * Map 集合的循环遍历
 * @data 2020.11.12
 * */public class TestMap { 
         public static void main(String[] args) {
              Map<String, Object> map = new HashMap<String, Object>();
              map.put("aaa", 111);
              map.put("bbb", 222);
              map.put("ccc", 333);

              // 第一种: 通过keySet的方式  System.out.println("第1种:通过Map.keySet()遍历key和value:");              for(String key:map.keySet()){//keySet获取map集合key的集合  然后在遍历key获取value即可  String value = map.get(key).toString();//                  System.out.println("key:"+key+" vlaue:"+value);
              } 
              // 第二种:通过迭代器的方式 System.out.println("第2种:通过Map.entrySet使用iterator遍历key和value:");
             Iterator<Entry<String, Object>> it = map.entrySet().iterator();             while(it.hasNext()){
                  Entry<String, Object> entry = it.next();
                  System.out.println("key:"+entry.getKey()+"  key:"+entry.getValue());
             } 
             // 第三种:尤其是容量大时,推荐System.out.println("第3种:通过Map.entrySet遍历key和value");for (Map.Entry<String, Object> m : map.entrySet()) {
                System.out.println("key:" + m.getKey() + " value:" + m.getValue());
            } 
             // 第四种:只需要获取value时使用System.out.println("第4种:通过Map.values()遍历所有的value,但不能遍历key");for(Object m:map.values()){
                System.out.println(m);
            }
     }
}

  如果只是获取key,或者value,推荐使用keySet或者values方式;

  如果同时需要key和value推荐使用entrySet;

   如果需要在遍历过程中删除元素推荐使用Iterator;

   如果需要在遍历过程中增加元素,可以新建一个临时map存放新增的元素,等遍历完毕,再把临时map放到原来的map中。