Java基礎(chǔ)知識:如何取出Map中key和value的值
你是否已經(jīng)對每次從Map中取得關(guān)鍵字然后再取得相應(yīng)的值感覺厭倦?使用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中取得關(guān)鍵字之后,我們必須每次重復(fù)返回到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"調(diào)用。同時,提供給開發(fā)人員一個同時保持了關(guān)鍵字和其對應(yīng)的值的類。Map.Entry同時也提供了一個setValue()方法,程序員可以使用它修改map里面的值。
Hashtable內(nèi)部排列的方式是散列排布,所以當輸出信息時會是無序的。為了能保證輸出的數(shù)據(jù)按照順序排列,不要渴望用java自帶的函數(shù)來對 Hashtable對象進行調(diào)整處理。當我們獲取Hashtable里的KEY和VALUE時,一般都運行了Map.Entry類來轉(zhuǎn)換,好,現(xiàn)在就用這 個類來作文章,我具體寫了一個方法。
代碼:
/**
* 方法名稱:getSortedHashtable
* 參數(shù):Hashtable h 引入被處理的散列表
* 描述:將引入的hashtable.entrySet進行排序,并返回
*/
public static Map.Entry[] getSortedHashtable(Hashtable h){
Set set = h.entrySet();
Map.Entry[] entries = (Map.Entry[])set.toArray(new Map.Entry[set.size()]);
Arrays.sort(entries,new Comparator(){
public int compare(Object arg0, Object arg1) {
Object key1 = ((Map.Entry)arg0)。getKey();
Object key2 = ((Map.Entry)arg1)。getKey();
return ((Comparable)key1)。compareTo(key2);
}
});
return entries;
}
調(diào)用這個方法:
Map.Entry[] set = getSortedHashtable(t);
//perportyTable
for (int i=0;i
時間:2013-06-22 責(zé)任編輯:admin
相關(guān)文章
無相關(guān)信息
更新時間2022-03-13 11:19:02【至頂部↑】 |
聯(lián)系我們
| 郵件:
| 客服熱線電話:4008816886(QQ同號)
|
付款方式 | 留言簿 | 投訴中心 | 網(wǎng)站糾錯 | 二維碼 | 手機版 |