永发信息网

java 关于Map 的两个for循环的区别是什么

答案:5  悬赏:0  手机版
解决时间 2021-01-08 14:07
java 关于Map 的两个for循环的区别是什么
最佳答案
//这里是调用Map的entrySet方法迭代出Map中的Entry对象,
//这里Entry对象中其实也是存放的为Key-->Value格式的键值对,其有getKey和getValue方法分别可以取其Key值和Value值
//Entry中的Key--Value键值对和Map中的每一个键值对相对应
//返回映射中包含的映射关系的Set视图。也是一个Set,而Set中每个元素是内部类Map.Entry。
for (Map.Entry entry : lhmap.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue() + "\t");
}
//这里使用迭代器首先迭代出Map的所有Key值,返回映射中包含的键的Set视图。 是key的Set集合
//根据Key值取出Map中的Value值
for (Iterator it = lhmap.keySet().iterator(); it.hasNext();) {
Object key = it.next();
System.out.println(key + "=" + lhmap.get(key));
}
//你可以给Map中存N多个数据,然后用上面的方法测试下性能,你回发现entrySet方法比keySet效率会高很多

有不明白的地方 请追问。追问两种方式 一般情况下 是可以互用的,对吗???追答嗯 可以的,用哪个都可以 但是建议用entrySet
全部回答
第一种:
entrySet每次遍历一行。一次for循环获得一个entrySet,里面包含key和value。用过getKey和getValue获取。
第二种:
keySet().iterator()遍历Map里面的key。通过get(key)的方法获得value。追问两种方式 一般情况下 是可以互用的,对吗???
没什么区别呀 就是Iterator迭代器的适用性强一些
Map.Entry是一种数据结构,有2个基本属性,Key和Value,遍历的时候取出每个Engry对象,访问Key和Value属性。后一种是遍历Key值,每次取出一个Key,再根据Key值去Map里面找Value值,效率是不一样的追问两种方式 一般情况下 是可以互用的,对吗???追答是的,都可以实现遍历Map。
1.第一个相当于将Map封装成了一个个Entry,这个Entry里面有key和value,要得到key就用getKey (),要得到value就用getValue();
2.第二个用的迭代,具体一点就是将key进行迭代,取出key之后,就可以根据key得到value。
3.区别的话,前者想得到key或者value,互不冲突。后者要得到value必须先得到key。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
十堰做什么生意项目赚钱
我欠了短期短期贷好几万,我现在没有能力去偿
表达“缅怀父亲”的七言诗句有哪些?
如何选择和空调匹配的空气开关
湖北的狗子是什么意思
食用干冰与工业干冰的区别
法律行为 情谊行为 戏谑行为的区别
相见不如怀念可以形容好朋友很久不见了吗
我老公被拘留,我该怎么办
电容描述:JMK105KV-F是什么意思??请知道的
42 50 () () 74 找规律
谁是目前最强的CPU(像安腾、POWER7、Alpha这
请问这是蜜蜡吗价值多少有7.8克
苏州相城大润到苏州南站有多远
150-180平方房子应该选用中央空调还是分体式
推荐资讯
哪有好的茶叶商/茶叶货源/茶叶加盟
五大发展理想1000字
汕头到揭阳炮台
葱绿是什么意思
PB中怎么给SQLCA自定义方法?比如我的方法为be
儿童牙齿矫正的费用是多少
杨英杰的介绍
いっしょうに和 いっしょう的区别
以下五个大写正体字母中,是中心对称图形的共
在2,3,6,12这四个数中,哪些数是质数
谁有红米note3系统7.07刷机包
设N<sub>A</sub>表示阿伏加得德罗常数的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?