问题补充说明:是在java.util.MapMap.Entry是什么意思啊?可以的话请写个例子... 是在java.util.MapMap.Entry是什么意思啊?可以的话请写个例子 展开
你是否已经对每次从Map中取得关键字然后再取得相应的值感觉拿影整让示第洋否察美红厌倦?使用Map.Entry类360问答,你可以得到在同一时间得到所有的信息。标准的Map访问方法如下:
Setkeys须比社束织然围武委简=map.keySet();if(keys!=null){Iteratoriterator=keys.iterator();while(iterat措罗游意呼or.hasNext()){Objectkey=iterator.next();Objectvalue=map.get(key);;....;}}
然后,这个方法有一个问题。从Map中取得关键字之后,我们必须每次重复返回到Map中取得相对的值,这是很繁琐和费时的。
幸运的是,这里有一个更加简单的途径。Map类提供了一个称为entryS搞确几et()的方法,这个方法返回一个Map.Ent纸响内装移钢铁ry实例化后的对象集。接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。举例如下:
Setentri关帮船es=map.entrySet();if(entries!=null){Iteratorite达染女rator=entries.iterator();while(iterat顶好身针剧道烟龙or.hasNext()){Map.Entryentry=iterator.next();Objectkey=entry.getKey();Object又征鲜来染古声息同value=entry.getValue();;....}}
尽管增加了一月机聚线模行代码,我们却省略了许多对Map不必要的“get”调用。同时,提供给开发人独花杨夫历领员一个同时保持了关键字和其对应的值的类。Map武著调讨明兰还呼.Entry同时也提供了一个setValue()方法,程序员可以使用它修改map里面的值。
阅读全文(427)|回复(1)|TrackBack(0)|编辑|精华
回复:Map.Entry类使用简介(转)
文章收藏,网上资源
tone发表评论于2007-2-2815:23:15
Hashtable内部排列的方式是散列排布,所以当输出信息时会是无序的。为了能保证输出的数据按照顺序排列,不要渴望用java自带的函数来对Hashtable对象进行调整处理。当我们获取Hashtable里的KEY和VALUE时,一般都运行了Map.Entry类来转换,好,现在就用这个类来作文章,我具体写了一个方法。
代码:
/**
*方法名称:getSortedHashtable
*参数:势宪滑什系Hashtableh引入被处理的散列表
*描述:将引入的hashtable.entrySet进行排序,并返回
*/
publicstaticMap.Entry[]getSortedHashtable(Hashtableh){
Setse玉天断曾派英脱艺医弦t=h.entrySet();
Map.Entry治板占[]entries=(Map.Entry[])set.toArray(newMap.Entry[set.size()]);
Arrays.sort(entries,newComparat能失语素名集听宁or(){
publicintcompare(Objectarg0,O句双bjectarg1){
Objectkey1=((Map.Entry)arg0).getKey();
Objectkey2=((M尼形杨红新记武ap.Entry)arg1).getKey();
return((Comparable)key1).compareTo(key2);
}
});
returnentries;
}
调用这个方法:
Map.Entry[]set=getSortedHashtable(t);
//perportyTable
for(inti=0;i System.out.println(set[i].getKey().toString()); System.out.println(set[i].getValue().toString()); }