java 关于Map 的两个for循环的区别是什么
答案:5 悬赏:0 手机版
解决时间 2021-01-08 14:07
- 提问者网友:書生途
- 2021-01-08 08:18
java 关于Map 的两个for循环的区别是什么
最佳答案
- 五星知识达人网友:北城痞子
- 2021-01-08 09:14
//这里是调用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
//这里Entry对象中其实也是存放的为Key-->Value格式的键值对,其有getKey和getValue方法分别可以取其Key值和Value值
//Entry中的Key--Value键值对和Map中的每一个键值对相对应
//返回映射中包含的映射关系的Set视图。也是一个Set,而Set中每个元素是内部类Map.Entry。
for (Map.Entry
System.out.println(entry.getKey() + ":" + entry.getValue() + "\t");
}
//这里使用迭代器首先迭代出Map的所有Key值,返回映射中包含的键的Set视图。 是key的Set集合
//根据Key值取出Map中的Value值
for (Iterator
Object key = it.next();
System.out.println(key + "=" + lhmap.get(key));
}
//你可以给Map中存N多个数据,然后用上面的方法测试下性能,你回发现entrySet方法比keySet效率会高很多
有不明白的地方 请追问。追问两种方式 一般情况下 是可以互用的,对吗???追答嗯 可以的,用哪个都可以 但是建议用entrySet
全部回答
- 1楼网友:十年萤火照君眠
- 2021-01-08 13:43
第一种:
entrySet每次遍历一行。一次for循环获得一个entrySet,里面包含key和value。用过getKey和getValue获取。
第二种:
keySet().iterator()遍历Map里面的key。通过get(key)的方法获得value。追问两种方式 一般情况下 是可以互用的,对吗???
entrySet每次遍历一行。一次for循环获得一个entrySet,里面包含key和value。用过getKey和getValue获取。
第二种:
keySet().iterator()遍历Map里面的key。通过get(key)的方法获得value。追问两种方式 一般情况下 是可以互用的,对吗???
- 2楼网友:往事埋风中
- 2021-01-08 13:16
没什么区别呀 就是Iterator迭代器的适用性强一些
- 3楼网友:鸠书
- 2021-01-08 11:37
Map.Entry是一种数据结构,有2个基本属性,Key和Value,遍历的时候取出每个Engry对象,访问Key和Value属性。后一种是遍历Key值,每次取出一个Key,再根据Key值去Map里面找Value值,效率是不一样的追问两种方式 一般情况下 是可以互用的,对吗???追答是的,都可以实现遍历Map。
- 4楼网友:玩世
- 2021-01-08 10:26
1.第一个相当于将Map封装成了一个个Entry,这个Entry里面有key和value,要得到key就用getKey (),要得到value就用getValue();
2.第二个用的迭代,具体一点就是将key进行迭代,取出key之后,就可以根据key得到value。
3.区别的话,前者想得到key或者value,互不冲突。后者要得到value必须先得到key。
2.第二个用的迭代,具体一点就是将key进行迭代,取出key之后,就可以根据key得到value。
3.区别的话,前者想得到key或者value,互不冲突。后者要得到value必须先得到key。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯