zoukankan      html  css  js  c++  java
  • 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,所以理解其用法,可以很好的使用和掌握

     1 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 }
  • 相关阅读:
    Jzoj4822 完美标号
    Jzoj4822 完美标号
    Jzoj4792 整除
    Jzoj4792 整除
    Educational Codeforces Round 79 A. New Year Garland
    Good Bye 2019 C. Make Good
    ?Good Bye 2019 B. Interesting Subarray
    Good Bye 2019 A. Card Game
    力扣算法题—088扰乱字符串【二叉树】
    力扣算法题—086分隔链表
  • 原文地址:https://www.cnblogs.com/biehongli/p/6443701.html
Copyright © 2011-2022 走看看