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. }
原文地址:https://www.cnblogs.com/moonfans/p/2643433.html