另一種遍歷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<String> keys = m.keySet( );
if(keys != null) 
    for(String s : keys)
        t.append(s + ": " + m.get(s) + "/n");




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章