接口 Map.Entry<K,V>

本文介绍了Java中Map的各种遍历方法,包括使用迭代器和增强型for循环等,并提供了具体的代码示例。
今天纠结了这个问题。 就是Map.Entry接口

Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集。接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。举例如下:
Map map = new HashMap();
Iterator iterator = map.entrySet().iterator();
while(iterator.hasNext()){
      Map.Entry entry = (Map.Entry)iterator.next();
      Object key = entry.getKey();
      Object value = entry.getValue();
}


Map的常见用法总结
java如何遍历map的所有的元素2009-03-01 16:04关键字: java如何遍历map的所有的元素(各种方法) JDK1.4中    
  1.   
  2. Map map = new HashMap();    
  3. Iterator it = map.entrySet().iterator();    
  4. while (it.hasNext()) {    
  5. Map.Entry entry = (Map.Entry) it.next();    
  6. Object key = entry.getKey();    
  7. Object value = entry.getValue();    
  8. }    
  9.   
  10.   
  11. JDK1.5中,应用新特性For-Each循环    
  12.   
  13. Map m = new HashMap();    
  14. for(Object o : map.keySet()){    
  15.     map.get(o);    
  16. }    
  17.   
  18.   
  19. 返回的 set 中的每个元素都是一个 Map.Entry 类型。    
  20.   
  21. private Hashtable<String, String> emails = new Hashtable<String, String>();    
  22.   
  23.    //方法一: 用entrySet()    
  24.    Iterator it = emails.entrySet().iterator();    
  25.    while(it.hasNext()){    
  26.     Map.Entry m=(Map.Entry)it.next();    
  27.     logger.info("email-" + m.getKey() + ":" + m.getValue());    
  28.    }    
  29.   
  30.    // 方法二:jdk1.5支持,用entrySet()和For-Each循环()    
  31.    for (Map.Entry<String, String> m : emails.entrySet()) {    
  32.       
  33.     logger.info("email-" + m.getKey() + ":" + m.getValue());    
  34.    }    
  35.   
  36.    // 方法三:用keySet()    
  37.    Iterator it = emails.keySet().iterator();    
  38.    while (it.hasNext()){    
  39.     String key;    
  40.     key=(String)it.next();    
  41.     logger.info("email-" + key + ":" + emails.get(key));    
  42.    }    
  43.   
  44. // 方法五:jdk1.5支持,用keySEt()和For-Each循环    
  45.   
  46. for(Object m: emails.keySet()){    
  47.     logger.info("email-" + m+ ":" + emails.get(m));    
  48.    }    
  49.   
  50. 另外 我们可以先把hashMap 转为集合Collection,再迭代输出,不过得到的对象    
  51.   
  52.    Map    aa    =    new    HashMap();      
  53.    aa.put("tmp1",    new    Object());      //追加      替换用同样的函数.      
  54.    aa.remove("temp1");                        //删除      
  55.    for    (Iterator    i    =    aa.values().iterator();    i.hasNext();    )    {      
  56.            Object    temp    =    i.next();      
  57.    }          //遍历      
  58.   
  59.   
  60. 来个完整的,包含TreeSet的元素内部排序的    
  61.   
  62. public static void main(String[] args) {    
  63.    ArrayList<String> list = new ArrayList<String>();    
  64.    HashMap<Object,Object> hash = new HashMap<Object,Object>();    
  65.    TreeMap<Object,Object> treeMap = new TreeMap<Object,Object>();    
  66.    list.add("a");    
  67.    list.add("b");    
  68.    list.add("c");    
  69.   
  70.    hash.put(33);    
  71.    hash.put(44);    
  72.    hash.put(55);    
  73.    hash.put(66);    
  74.    hash.put(11);    
  75.    hash.put(22);    
  76.   
  77.    treeMap.put(11);    
  78.    treeMap.put(22);    
  79.    treeMap.put(33);    
  80.    treeMap.put(44);    
  81.    treeMap.put(55);    
  82.    treeMap.put(66);    
  83.   
  84.    //list遍历    
  85.    for(String m: list){    
  86.     System.out.println(m);    
  87.    }    
  88.    // hashmap entrySet() 遍历    
  89.    for(Map.Entry<Object,Object> m: hash.entrySet()){    
  90.     System.out.println(m.getKey()+"---"+m.getValue());    
  91.    }    
  92.    //hashmap keySet() 遍历    
  93.    for(Object m: hash.keySet()){    
  94.     System.out.println(m+"---"+hash.get(m));    
  95.    }    
  96.    // treemap keySet()遍历    
  97.    for(Object m: treeMap.keySet()){    
  98.     System.out.println(m+"---"+treeMap.get(m));    
  99.    }    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值