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. }  
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.HashMap;
    
    	/**
    	 * 1.把值放到一个集合里,然后遍历集合
    	 */
    public class TraversalMap1 {
    	private static Map<Integer, String> map;
    	private static TraversalMap1 getMap(){
    		map = new HashMap<Integer, String>();
    		for(int i = 0 ; i < 10 ; i ++){
    			if(map.isEmpty()) map.put(i, "String " + i);
    			else if(map.get(i) == null) map.put(i,"String " + i) ;
    		}
    		return null;
    	}
    	
    	public static void main(String[] args){
    		getMap();
    		Collection<String> c = map.values();
    		Iterator i = c.iterator();
    		for(; i.hasNext() ;){
    			System.out.println(i.next());//遍历出map内的所有value
    		}
    		
    	}	
    }

    第二种:

    利用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. }  
    import java.util.Set;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.HashMap;
        /**
        * 2.把key放到一个集合里,遍历key值同时根据key得到值
        */
    public class TraversalMap2 {
    	private static Map<Integer, String> map;
    	private static TraversalMap2 getMap(){
    		map = new HashMap<Integer, String>();
    		for(int i = 0 ; i < 10 ; i ++){
    			if(map.isEmpty()) map.put(i, "String " + i);
    			else if(map.get(i) == null) map.put(i,"String " + i) ;
    		}
    		return null;
    	}
    	
    	public static void main(String[] args){
    		getMap();
    		Set set = map.keySet();
    		Iterator i = set.iterator();
    		for(; i.hasNext() ;){
    			System.out.println(i.next());//遍历出map内的所有key
    		}
    		
    	}	
    }

    第三种:

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

    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. }
  • 相关阅读:
    【读书笔记】Cracking the Code Interview(第五版中文版)
    【LeetCode】贪心 greedy(共38题)
    【LeetCode】树(共94题)
    C++学习笔记 <multimap>
    C++学习笔记 <map>
    Flatten Binary Tree to Linked List <leetcode>
    Sum Root to Leaf Numbers <leetcode>
    Combinations <leetcode>
    Populating Next Right Pointers in Each Node II <leetcode>
    Pascal's Triangle II <leetcode>
  • 原文地址:https://www.cnblogs.com/moonfans/p/2643433.html
Copyright © 2011-2022 走看看