1.Map.Entry說(shuō)明
Map是java中的接口,Map.Entry是Map的一個(gè)內(nèi)部接口。
Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一個(gè)Set集合,此集合的類型為Map.Entry。
Map.Entry是Map聲明的一個(gè)內(nèi)部接口,此接口為泛型,定義為Entry<K,V>。它表示Map中的一個(gè)實(shí)體(一個(gè)key-value對(duì))。接口中有g(shù)etKey(),getValue方法。
2.Map.Entry使用
你是否已經(jīng)對(duì)每次從Map中取得關(guān)鍵字然后再取得相應(yīng)的值感覺(jué)厭倦?使用Map.Entry類,你可以得到在同一時(shí)間得到所有的信息。標(biāo)準(zhǔn)的Map訪問(wèn)方法如下:
Set keys = map.keySet( );if(keys != null) {Iterator iterator = keys.iterator( );while(iterator.hasNext( )) {Object key = iterator.next( );Object value = map.get(key);;....;}}
然后,這個(gè)方法有一個(gè)問(wèn)題。從Map中取得關(guān)鍵字之后,我們必須每次重復(fù)返回到Map中取得相對(duì)的值,這是很繁瑣和費(fèi)時(shí)的。
幸運(yùn)的是,這里有一個(gè)更加簡(jiǎn)單的途徑。Map類提供了一個(gè)稱為entrySet()的方法,這個(gè)方法返回一個(gè)Map.Entry實(shí)例化后的對(duì)象集。接著,Map.Entry類提供了一個(gè)getKey()方法和一個(gè)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();;....}}
盡管增加了一行代碼,我們卻省略了許多對(duì)Map不必要的“get”調(diào)用。同時(shí),提供給開(kāi)發(fā)人員一個(gè)同時(shí)保持了關(guān)鍵字和其對(duì)應(yīng)的值的類。Map.Entry同時(shí)也提供了一個(gè)setValue()方法,程序員可以使用它修改map里面的值。
文章
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注