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中取得關鍵字然后再取得相應的值感覺厭倦?使用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 = (Map.Entry) iterator.next(); Object key = entry.getKey(); Object value = entry.getValue(); ;....; } }盡管增加了一行代碼,我們卻省略了許多對Map不必要的“get”調用。同時,提供給開發人員一個同時保持了關鍵字和其對應的值的類。Map.Entry同時也提供了一個setValue()方法,程序員可以使用它修改map里面的值。
參考鏈接:http://www.cnblogs.com/ningvsban/archive/2013/05/06/3062217.htmlhttp://www.cnblogs.com/meieiem/archive/2011/11/02/2233041.html
新聞熱點
疑難解答