遍歷Map的方式: Map.Entry 和 Map.entrySet()

今天看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。java

    Map.Entry裏有相應的getKey和getValue方法,讓咱們可以從一個項中取出Key和Value。這樣就能理解了例子中的寫法了。app

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

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

        }接口

    這裏的t是一個TextArea,m是一個HashMap。get

    這種遍歷Map的方法可讓咱們在從Map中取得關鍵字以後,咱們不用每次重複返回到Map中取得相對的值。it

    以下面是之前的寫法:每次都要再從m中讀出s所對應的值。io

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

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

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());          }      }}

相關文章
相關標籤/搜索