JAVA遍历map元素

第一种:

Java代码  收藏代码
  1. Map map = new HashMap();  
  2. Iterator iter = map.entrySet().iterator();  
  3. while (iter.hasNext()) {  
  4.     Map.Entry entry = (Map.Entry) iter.next();  
  5.     Object key = entry.getKey();  
  6.     Object val = entry.getValue();  
  7. }  

 效率高,推荐使用此种方式!

第二种:

Java代码  收藏代码
  1. Map map = new HashMap();  
  2. Iterator iter = map.keySet().iterator();  
  3. while (iter.hasNext()) {  
  4.     Object key = iter.next();  
  5.     Object val = map.get(key);  
  6. }   

 效率低,以后尽量少使用!

JDK1.5中,应用新特性For-Each循环

Java代码  收藏代码
  1. Map map = new HashMap();  
  2. for(Object o : map.keySet()){  
  3.     map.get(o);  
  4. }  

 

 

返回的 set 中的每个元素都是一个 Map.Entry 类型。

Java代码  收藏代码
  1. private Hashtable<String, String> emails = new Hashtable<String, String>();  
  2.    //方法一: 用entrySet()  
  3.    Iterator it = emails.entrySet().iterator();  
  4.    while(it.hasNext()){  
  5.        Map.Entry m=(Map.Entry)it.next();  
  6.        logger.info("email-" + m.getKey() + ":" + m.getValue());  
  7.    }  
  8.     
  9.    // 方法二:jdk1.5支持,用entrySet()和For-Each循环()  
  10.    for (Map.Entry<String, String> m : emails.entrySet()) {  
  11.        logger.info("email-" + m.getKey() + ":" + m.getValue());  
  12.    }  
  13.     
  14.    // 方法三:用keySet()  
  15.    Iterator it = emails.keySet().iterator();  
  16.    while (it.hasNext()){  
  17.        String key;  
  18.        key=(String)it.next();  
  19.        logger.info("email-" + key + ":" + emails.get(key));  
  20.    }  
  21.   
  22. // 方法五:jdk1.5支持,用keySEt()和For-Each循环  
  23.   
  24. for(Object m: emails.keySet()){  
  25.        logger.info("email-" + m+ ":" + emails.get(m));  
  26.    }  

 

另外 我们可以先把hashMap 转为集合Collection,再迭代输出,不过得到的对象

Java代码  收藏代码
  1.  Map    aa    =    new    HashMap();     
  2.  aa.put("tmp1",    new    Object());      //追加      替换用同样的函数.     
  3.  aa.remove("temp1");                        //删除     
  4.  for    (Iterator    i    =    aa.values().iterator();    i.hasNext();    )  
  5. {     
  6.          Object    temp    =    i.next();     
  7.  }   

 

来个完整的,包含TreeSet的元素内部排序的

Java代码  收藏代码
  1. public static void main(String[] args) {  
  2.    ArrayList<String> list = new ArrayList<String>();  
  3.    HashMap<Object,Object> hash = new HashMap<Object,Object>();  
  4.    TreeMap<Object,Object> treeMap = new TreeMap<Object,Object>();  
  5.    list.add("a");  
  6.    list.add("b");  
  7.    list.add("c");  
  8.     
  9.    hash.put(3, 3);  
  10.    hash.put(4, 4);  
  11.    hash.put(5, 5);  
  12.    hash.put(6, 6);  
  13.    hash.put(1, 1);  
  14.    hash.put(2, 2);  
  15.     
  16.    treeMap.put(1, 1);  
  17.    treeMap.put(2, 2);  
  18.    treeMap.put(3, 3);  
  19.    treeMap.put(4, 4);  
  20.    treeMap.put(5, 5);  
  21.    treeMap.put(6, 6);  
  22.     
  23.    //list遍历  
  24.    for(String m: list){  
  25.     System.out.println(m);  
  26.    }  
  27.    // hashmap entrySet() 遍历  
  28.    for(Map.Entry<Object,Object> m: hash.entrySet()){  
  29.     System.out.println(m.getKey()+"---"+m.getValue());  
  30.    }  
  31.    //hashmap keySet() 遍历  
  32.    for(Object m: hash.keySet()){  
  33.     System.out.println(m+"---"+hash.get(m));  
  34.    }  
  35.    // treemap keySet()遍历  
  36.    for(Object m: treeMap.keySet()){  
  37.     System.out.println(m+"---"+treeMap.get(m));  
  38.    }  
  39. }  

 

posted @ 2016-01-08 09:48  java高级技术汇  阅读(336)  评论(0编辑  收藏  举报