1. 程式人生 > >Map.Entry使用詳解

Map.Entry使用詳解

null 不必要 .... ... entry 關鍵字 set集合 while font

Map是java中的接口,Map.Entry是Map的一個內部接口。

Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一個Set集合,此集合的類型為Map.Entry。

Map.Entry是Map聲明的一個內部接口,此接口為泛型,定義為Entry<K,V>。它表示Map中的一個實體(一個key-value對)。接口中有getKey(),getValue方法。

Map.Entry使用

你是否已經對每次從Map中取得關鍵字然後再取得相應的值感覺厭倦?使用Map.Entry類,你可以得到在同一時間得到所有的信息。標準的Map訪問方法如下:

Set keys = map.keySet( );
if(keys != null) {
Iterator iterator = keys.iterator( );
while(iterator.hasNext( )) {
Object key = iterator.next( );
Object value = map.get(key);
;....
;}
}

然後,這個方法有一個問題。從Map中取得關鍵字之後,我們必須每次重復返回到Map中取得相對的值,這是很繁瑣和費時的。

幸運的是,這裏有一個更加簡單的途徑。Map類提供了一個稱為entrySet()的方法,這個方法返回一個Map.Entry實例化後的對象集。接著,Map.Entry類提供了一個getKey()方法和一個getValue()方法,因此,上面的代碼可以被組織得更符合邏輯。舉例如下:

Set entries = map.entrySet( );
if(entries != null) {
Iterator iterator = entries.iterator( );
while(iterator.hasNext( )) {
Map.Entry entry =iterator.next( );
Object key = entry.getKey( );
Object value = entry.getValue();
;....
}
}

盡管增加了一行代碼,我們卻省略了許多對Map不必要的“get”調用。同時,提供給開發人員一個同時保持了關鍵字和其對應的值的類。Map.Entry同時也提供了一個setValue()方法,程序員可以使用它修改map裏面的值。

文章轉載於:http://www.cnblogs.com/guoxu/articles/1703393.html

Map.Entry使用詳解