zoukankan      html  css  js  c++  java
  • Map三种遍历方式

    第一种:

    最常规的一种遍历方法,最常规就是最常用的,虽然不复杂,但很重要,这是我们最熟悉的。

    Java代码  
    1. import java.util.Collection;  
    2. import java.util.Iterator;  
    3. import java.util.Map;  
    4. import java.util.HashMap;  
    5.   
    6.     /** 
    7.      * 1.把值放到一个集合里,然后遍历集合 
    8.      */  
    9. public class TraversalMap1 {  
    10.     private static Map<Integer, String> map;  
    11.     private static TraversalMap1 getMap(){  
    12.         map = new HashMap<Integer, String>();  
    13.         for(int i = 0 ; i < 10 ; i ++){  
    14.             if(map.isEmpty()) map.put(i, "String " + i);  
    15.             else if(map.get(i) == null) map.put(i,"String " + i) ;  
    16.         }  
    17.         return null;  
    18.     }  
    19.       
    20.     public static void main(String[] args){  
    21.         getMap();  
    22.         Collection<String> c = map.values();  
    23.         Iterator i = c.iterator();  
    24.         for(; i.hasNext() ;){  
    25.             System.out.println(i.next());//遍历出map内的所有value  
    26.         }  
    27.           
    28.     }     
    29. }  

    第二种:

    利用keyset进行遍历,它手优点在于可以根据你所想要的key值得到你想要的values,更具灵活性。

    Java代码  
    1. import java.util.Set;  
    2. import java.util.Iterator;  
    3. import java.util.Map;  
    4. import java.util.HashMap;  
    5.     /** 
    6.     * 2.把key放到一个集合里,遍历key值同时根据key得到值 
    7.     */  
    8. public class TraversalMap2 {  
    9.     private static Map<Integer, String> map;  
    10.     private static TraversalMap2 getMap(){  
    11.         map = new HashMap<Integer, String>();  
    12.         for(int i = 0 ; i < 10 ; i ++){  
    13.             if(map.isEmpty()) map.put(i, "String " + i);  
    14.             else if(map.get(i) == null) map.put(i,"String " + i) ;  
    15.         }  
    16.         return null;  
    17.     }  
    18.       
    19.     public static void main(String[] args){  
    20.         getMap();  
    21.         Set set = map.keySet();  
    22.         Iterator i = set.iterator();  
    23.         for(; i.hasNext() ;){  
    24.             System.out.println(i.next());//遍历出map内的所有key  
    25.         }  
    26.           
    27.     }     
    28. }  

    第三种:

    比较复杂的一种遍历在这里,呵呵~~它很暴力哦,它的灵活性太强了,想得到什么就能得到什么~~

    Java代码  
    1. import java.util.Map;  
    2. import java.util.HashMap;  
    3.     /** 
    4.     * 3.把一个map对象放到放到entry里,然后根据entry同时得到key和value 
    5.     */  
    6. public class TraversalMap3 {  
    7.     private static Map<Integer, String> map;  
    8.     private static int num = 0 ;  
    9.     private static String str = "";  
    10.     private static TraversalMap3 getMap(){  
    11.         map = new HashMap<Integer, String>();  
    12.         for(int i = 0 ; i < 10 ; i ++){  
    13.             if(map.isEmpty()) map.put(i, "String " + i);  
    14.             else if(map.get(i) == null) map.put(i,"String " + i) ;  
    15.         }  
    16.         return null;  
    17.     }  
    18.       
    19.     public static void main(String[] args){  
    20.         getMap();  
    21.         for(Map.Entry<Integer, String> entry : map.entrySet()){  
    22.             num = entry.getKey();  
    23.             str = entry.getValue();  
    24.             System.out.println("the map key is : " + num + " || the value is : " + str);//显示出map的key和value  
    25.         }  
    26.           
    27.     }     
    28. }  
  • 相关阅读:
    Leetcode665.Non-decreasing Array非递减数组
    在MyEclipse中把多行代码用一快捷键注释掉
    struts2中addFieldError()方法
    [bzoj2588][Spoj10628]Count on a tree_主席树
    [bzoj3123][Sdoi2013]森林_主席树_启发式合并
    [bzoj1500][NOI2005]维修数列_非旋转Treap
    [bzoj1452][JSOI2009]Count_树状数组
    [bzoj1369][Baltic2003]Gem_树形dp_结论题
    [bzoj1195][HNOI2006]最短母串_动态规划_状压dp
    [bzoj2242][Sdoi2011]计算器_exgcd_BSGS
  • 原文地址:https://www.cnblogs.com/zhongmingyuan/p/4911706.html
Copyright © 2011-2022 走看看