遍历map集合

遍历map集合示例展示:

package map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;

/**
 * 问题:如何遍历map集合呢?
 * @author superdrew
 *  Map    key -- values 
 *  使用集合存储分数,课程,学生( list,set  Collection)
 *  使用 Map 存储 学生 ,根据id 查找学生 (快速的找到学生, 通过键  找到 值   学号--学生)
 *  
 *  功能:使用map存储国家 名称
 *  掌握 map的使用    
 *  
 *  总结:map如何遍历
 *      map不能直接遍历,转成set后在遍历
 *      1.先得到所有的key 根据key再获取值
 *      2.先得到所有的key和value 再从每一个key value中分别取出key 和 value
 *      3.先得到entrySet(返回值是Set) 再交给Iterator迭代器
 *  
 *  map其它的一些方法
 *      map.remove("cn") 删除key 和 value 如果key不存在,返回null
 *      map.clear()      清空当前map中所有的key 和value
 *      map.isEmpty()     判断当前map是否为空
 *      map.containsKey("123")  判断当前map是否包涵这个key 如果不存在 返回false
 *      containsValue("Japan")  判断当前map是否包涵这个value  如果不存在 返回false
 *  
 *  
 */

public class TestMap2 {
    public static void main(String[] args) {
        //创建map集合
        Map<String,String> map = new TreeMap<String,String>();
        //往map集合添加 key  和 value 
        map.put("cn", "Chinese");
        map.put("us", "America");
        map.put("en", "England");
        map.put("jp", "Japan");
        map.put("us", "the united stas");
        map.put("uk", "Japan");
        map.put("cs", "cs");
        System.out.println(map);  //显示:初始map集合
        System.out.println(map.remove("cn"));  //通过键key="cn",来删除值value="Chinese",并将其打印出来。
        System.out.println(map);  //删除后的map集合
        //map.clear();  //清空map集合
        System.out.println(map.size());   //输出map集合的长度。
        System.out.println(map.isEmpty());  //输出:false (非空的map集合)
        System.out.println(map.containsKey("123"));  //containsKey为Boolean值,是为true,否为false。
        System.out.println(map.containsValue("Japan"));   //map集合中的值包含Japan
        
        System.out.println("========遍历方式1  先得到key 返回一个Set集合=====================");
        //遍历方式1  先得到key 返回一个Set集合
        Set<String> keySet = map.keySet();
        for(String key:keySet){
            //System.out.println(key);
            System.out.println(key+"---"+map.get(key));  //map.get(key)通过key获取map的value值。
        }
        
        System.out.println("========遍历方式2 得到所有的key 和value 再从key value中分别获取key 和value==================");
        //遍历方式2 得到所有的key 和value 再从key value中分别获取key 和value
        Set<Entry<String,String>> entrySet = map.entrySet();
        for(Entry<String,String> entry  :entrySet){
            System.out.println(entry.getKey()+"--"+entry.getValue());
        }
        
        System.out.println("========遍历方式3 迭代器  Map没有实现Iterator,不能【直接】使用迭代器,需要利用entrySet()===========");
        //遍历方式3 迭代器  Map没有实现Iterator  不能直接使用迭代器
        Set<Entry<String,String>> entrySet2 = map.entrySet();
        Iterator<Entry<String,String>> it = entrySet2.iterator();
        while(it.hasNext()){
            Entry<String, String> entry = it.next();
            //System.out.println(entry);
            System.out.println(entry.getKey()+"--"+entry.getValue());
        }
    }
}

结果展示:

 

posted @ 2017-12-22 10:06  superdrew  阅读(334)  评论(0编辑  收藏  举报