[转]另一种遍历Map的方式:&…

    xiaoxiao2021-04-18  63

    原文地址:[转]另一种遍历Map的方式: Map.Entry 和 Map.entrySet() 作者:幽落幽落

    源网址: http://blog.csdn.net/mageshuai/article/details/3523116

     

        今天看Think in java 的GUI这一章的时候,里面的TextArea这个例子在遍历Map时用到了Map.Entry 和 Map.entrySet() ,记得只见过Map.KeySet()和values()这两个方法,于是到API中一看,Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是一个接口,他的用途是表示一个映射项(里面有Key和Value),而Set<Map.Entry<K,V>>表示一个映射项的Set。

        Map.Entry里有相应的getKey和getValue方法,让我们能够从一个项中取出Key和Value。这样就能理解了例子中的写法了。

            for(Map.Entry me : m.entrySet()) {

                t.append(me.getKey() + ": " + me.getValue() + "/n");

            }

        这里的t是一个TextArea,m是一个HashMap。

        这种遍历Map的方法可以让我们在从Map中取得关键字之后,我们不用每次重复返回到Map中取得相对的值。

        如下面是以前的写法:每次都要再从m中读出s所对应的值。

           Set keys = m.keySet( );        if(keys != null)           for(String s : keys)               t.append(s + ": " + m.get(s) + "/n");

     

     

     

    源网址: http://blog.csdn.net/nuoshueihe/article/details/7874069

     

    1.package edu.smc.test;  2.  3.import java.util.HashMap;  4.import java.util.Iterator; 5.import java.util.Map;  6.import java.util.Map.Entry; 7.  8.public class TestEntrySet {  9.    public static void main(String[] args) { 10.        Map<String,String> map=new HashMap<String,String>();  11.        map.put("1", "张三");  12.        map.put("2", "李四");  13.        map.put("3", "王五");  14.          15.        System.out.println("方法一:");  16.        Iterator iterator=map.entrySet().iterator();  17.        while(iterator.hasNext()){        18.           Map.Entry<String, String> entry= (Entry<String, String>) iterator.next();  19.           System.out.println("key:"+entry.getKey()+" value"+entry.getValue());    20.          }         21.          22.        System.out.println("方法二:");  23.        for (Map.Entry<String, String> m : map.entrySet()) {  24.              System.out.println("key:"+m.getKey()+" value"+m.getValue());  25.          }   26.      }  27.}  package edu.smc.test;

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry;

    public class TestEntrySet {  public static void main(String[] args) {   Map<String,String> map=new HashMap<String,String>();   map.put("1", "张三");   map.put("2", "李四");   map.put("3", "王五");      System.out.println("方法一:");   Iterator iterator=map.entrySet().iterator();         while(iterator.hasNext()){                 Map.Entry<String, String> entry= (Entry<String, String>) iterator.next();      System.out.println("key:"+entry.getKey()+" value"+entry.getValue());      }                       System.out.println("方法二:");         for (Map.Entry<String, String> m : map.entrySet()) {            System.out.println("key:"+m.getKey()+" value"+m.getValue());           }       } } 结果:

     

    [html] view plaincopyprint? 1.方法一:  2.key:3 value王五  3.key:2 value李四  4.key:1 value张三  5.方法二:  6.key:3 value王五  7.key:2 value李四  8.key:1 value张三 

    转载请注明原文地址: https://ju.6miu.com/read-675307.html

    最新回复(0)