zoukankan      html  css  js  c++  java
  • Map集合遍历的四种方式理解和简单使用

    Map集合遍历的四种方式理解和简单使用

     

    ~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值

    1:无非就是通过map.keySet()获取到值,然后根据键获取到值

      for(String s:map.keySet()){
                System.out.println("key : "+s+" value : "+map.get(s));
         }

    2:通过Map.Entry(String,String) 获取,然后使用entry.getKey()获取到键,通过entry.getValue()获取到值

      for(Map.Entry<String, String> entry : map.entrySet()){
                System.out.println("键 key :"+entry.getKey()+" 值value :"+entry.getValue());
            }

    3:其中通过Iterator也是为了最终获得entry,所以理解其用法,可以很好的使用和掌握

     package com.bie;
     2 
     3 import java.util.HashMap;
     4 import java.util.Iterator;
     5 import java.util.Map;
     6 
     7 /** 
     8 * @author BieHongLi 
     9 * @version 创建时间:2017年2月25日 下午8:58:54 
    10 * 
    11 */
    12 public class MapTest01 {
    13 
    14     public static void main(String[] args) {
    15         Map<String, String> map=new HashMap<String, String>();
    16         map.put("张三1", "男");
    17         map.put("张三2", "男");
    18         map.put("张三3", "男");
    19         map.put("张三4", "男");
    20         map.put("张三5", "男");
    21         
    22         //第一种遍历map的方法,通过加强for循环map.keySet(),然后通过键key获取到value值
    23         for(String s:map.keySet()){
    24             System.out.println("key : "+s+" value : "+map.get(s));
    25         }
    26         System.out.println("====================================");
    27         
    28         //第二种只遍历键或者值,通过加强for循环
    29         for(String s1:map.keySet()){//遍历map的键
    30             System.out.println("键key :"+s1);
    31         }
    32         for(String s2:map.values()){//遍历map的值
    33             System.out.println("值value :"+s2);
    34         }
    35         System.out.println("====================================");    
    36         
    37         //第三种方式Map.Entry<String, String>的加强for循环遍历输出键key和值value
    38         for(Map.Entry<String, String> entry : map.entrySet()){
    39             System.out.println("键 key :"+entry.getKey()+" 值value :"+entry.getValue());
    40         }
    41         System.out.println("====================================");
    42         
    43         //第四种Iterator遍历获取,然后获取到Map.Entry<String, String>,再得到getKey()和getValue()
    44         Iterator<Map.Entry<String, String>> it=map.entrySet().iterator();
    45         while(it.hasNext()){
    46             Map.Entry<String, String> entry=it.next();
    47             System.out.println("键key :"+entry.getKey()+" value :"+entry.getValue());
    48         }
    49         System.out.println("====================================");
    50         
    51     }
    52     
    53     
    54 }
    复制代码

     4:Map的一些常用的知识点,和取值的变形形式,都需要掌握和了解

    复制代码
     1 package com.bie;
     2 
     3 import java.util.Collection;
     4 import java.util.HashMap;
     5 import java.util.Map;
     6 import java.util.Set;
     7 
     8 /** 
     9 * @author BieHongLi 
    10 * @version 创建时间:2017年2月26日 上午11:29:59 
    11 * 
    12 */
    13 public class MapTest02 {
    14 
    15     public static void main(String[] args) {
    16         //1:key,value都是object类型的
    17         //2:key必须是唯一的,不唯一,那么后面的value会把前面的value覆盖
    18         //3:对于HashMap,key可以为空
    19         //4:value可以为空,也可以为空
    20         //5:HashTable的key和value不能为空
    21         //6:properties的key和value必须为String类型的
    22         Map<String , String> map=new HashMap<>();
    23         map.put("null", "this is null 1");
    24         map.put("null", "this is null 2");
    25         System.out.println(map.size());
    26         System.out.println(map.get(null));
    27         
    28         System.out.println("=============================");
    29         //循环显示map类型的key以及对应的value
    30         //三个集合,key的集合,value的集合,键值对的集合
    31         Set<String> keys=map.keySet();
    32         for(String s:keys){
    33             System.out.println(s);
    34         }
    35         System.out.println("=============================");
    36         Collection<String> values=map.values();//值的集合
    37         System.out.println(values);
    38         System.out.println("=============================");
    39         Set<Map.Entry<String, String>> entrys=map.entrySet();//键值对的集合
    40         for(Map.Entry<String, String> entry:entrys){
    41             System.out.println(entry.getKey()+" "+entry.getValue());
    42         }
    43         
    44     }
    45 }
    复制代码
  • 相关阅读:
    P1351 联合权值
    c++ 贪心讲解大礼包
    取石子 找规律
    树 dfs暴力判环 题意转化
    P2519 [HAOI2011]problem a
    P1640 [SCOI2010]连续攻击游戏 二分图最大匹配 匈牙利算法
    P2756 飞行员配对方案问题 二分图匹配 匈牙利算法
    cogs 49. 跳马问题 DFS dp
    cogs 2. 旅行计划 dijkstra+打印路径小技巧
    cogs 1440. [NOIP2013]积木大赛 贪心水题
  • 原文地址:https://www.cnblogs.com/CrisZjie180228/p/8986832.html
Copyright © 2011-2022 走看看