Java如何遍历Map的所有的元素

JDK1.4中

Java代码 复制代码
Map map = new HashMap();   
Iterator it = map.entrySet().iterator();   
while (it.hasNext()) {   
Map.Entry entry = (Map.Entry) it.next();   
Object key = entry.getKey();   
Object value = entry.getValue();   
} 
  
Map map = new HashMap();
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
}




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

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




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

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

   //方法一: 用entrySet()
   Iterator it = emails.entrySet().iterator();
   while(it.hasNext()){
    Map.Entry m=(Map.Entry)it.next();
    logger.info("email-" + m.getKey() + ":" + m.getValue());
   }
 
   // 方法二:jdk1.5支持,用entrySet()和For-Each循环()
   for (Map.Entry<String, String> m : emails.entrySet()) {  
    logger.info("email-" + m.getKey() + ":" + m.getValue());
   }
 
   // 方法三:用keySet()
   Iterator it = emails.keySet().iterator();
   while (it.hasNext()){
    String key;
    key=(String)it.next();
    logger.info("email-" + key + ":" + emails.get(key));
   }

   // 方法五:jdk1.5支持,用keySEt()和For-Each循环

   for(Object m: emails.keySet()){
    logger.info("email-" + m+ ":" + emails.get(m));
   }



另外 我们可以先把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.     Object temp = i.next();     
  6. }//遍历    
   Map aa = new HashMap();  
   aa.put("tmp1",new Object());      //追加      替换用同样的函数.  
   aa.remove("temp1");                        //删除  
   for(Iterator i = aa.values().iterator(); i.hasNext();){  
       Object temp = i.next();  
   }//遍历  




来个完整的,包含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(33);   
  10.    hash.put(44);   
  11.    hash.put(55);   
  12.    hash.put(66);   
  13.    hash.put(11);   
  14.    hash.put(22);   
  15.     
  16.    treeMap.put(11);   
  17.    treeMap.put(22);   
  18.    treeMap.put(33);   
  19.    treeMap.put(44);   
  20.    treeMap.put(55);   
  21.    treeMap.put(66);   
  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. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值