Map集合中的entry是什么?

 我来答
帐号已注销
2019-06-28 · TA获得超过1.2万个赞
知道答主
回答量:25
采纳率:0%
帮助的人:6093
展开全部

Map.Entry 是Map中的一个接口,他的用途是表示一个映射项(里面有Key和Value),而Set<Map.Entry<K,V>>表示一个映射项的Set。

Map.Entry里有相应的getKey和getValue方法,即JavaBean,让我们能够从一个项中取出Key和Value。


扩展资料

因为Map这个类没有继承Iterable接口所以不能直接通过map.iterator来遍历,所以就只能先转化为set类型,用entrySet()方法,其中set中的每一个元素值就是map中的一个键值对,也就是Map.Entry<K,V>了,然后就可以遍历了。

Map.Entry使用方法介绍:

Set keys = map.keySet( );

if(keys != null) {

Iterator iterator = keys.iterator( );

while(iterator.hasNext( )) {

Object key = iterator.next( );

Object value = map.get(key);

;....    

;}

妥当且勤恳丶财宝
推荐于2017-10-15 · TA获得超过264个赞
知道小有建树答主
回答量:300
采纳率:50%
帮助的人:96.3万
展开全部
标准的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里面的值。

Hashtable内部排列的方式是散列排布,所以当输出信息时会是无序的。为了能保证输出的数据按照顺序排列,不要渴望用java自带的函数来对Hashtable对象进行调整处理。当我们获取Hashtable里的KEY和VALUE时,一般都运行了Map.Entry类来转换,好,现在就用这个类来作文章,我具体写了一个方法。

代码:

/**
* 方法名称:getSortedHashtable
* 参数: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;
}

调用这个方法:

Map.Entry[] set = getSortedHashtable(t);

//perportyTable
for (int i=0;i<set.length;i++){

System.out.println(set[i].getKey().toString());

System.out.println(set[i].getValue().toString());

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kid_jy
推荐于2017-09-05 · TA获得超过793个赞
知道小有建树答主
回答量:1362
采纳率:0%
帮助的人:1276万
展开全部
map不有个Key和value吗 一个Key对应一个value 而key和value组合起来的一个组就是entry 要想取出这个组里的key和value就用entry的迭代器迭代即可。
追问
能不能举个具体的列子啊?
追答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
青岛新航道学校
2020-10-21 · TA获得超过930个赞
知道答主
回答量:1.2万
采纳率:40%
帮助的人:551万
展开全部

entry

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式