Java中怎么遍历map中value值

 我来答
加百列windy
高粉答主

2018-12-12 · 每个回答都超有意思的
知道小有建树答主
回答量:2074
采纳率:100%
帮助的人:91.5万
展开全部

Java中遍历Map对象的4种方法:

1、通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时。

2、通过Map.keySet遍历key,通过键找值value遍历(效率低),普遍使用,二次取值。

3、如果只需要map中的键或者值,你可以通过Map.keySet或Map.values来实现遍历,而不是用entrySet。在for-each循环中遍历keys或values。

4、通过Map.entrySet使用iterator遍历key和value。

扩展资料:

关于JAVA的遍历知识补充:

1、list和set集合都实现了Iterable接口,所以他们的实现类可以使用迭代器遍历,map集合未实现该接口,若要使用迭代器循环遍历,需要借助set集合。

2、使用EntrySet 遍历,效率更高。

参考资料:

百度百科--Map(映射)

小官在观察
2018-07-21 · 利用chatGpt写文章 利用chatGpt写文章
小官在观察
采纳数:3 获赞数:563

向TA提问 私信TA
展开全部
  1. 利用for循环

  2. 利用迭代

  3. 用keySet 迭代

4.enterySet 迭代

  1. 资料拓展:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skystmm
2018-07-20 · TA获得超过1075个赞
知道答主
回答量:60
采纳率:73%
帮助的人:10万
展开全部

遍历map中value大致有四种方法,具体每种方法的代码和解释如下:

Map<String,String> maps=  new HashMap<>();
maps.put("test","test");
maps.put("test1","test1");


for(String value : maps.values()){
System.out.println(value);
}

方法一是直接获取Map中value的set,然后对value的Collection进行遍历。



for(String value :maps.keySet()){
System.out.println(maps.get(value));
}


方法二是先获取keySet,然后遍历key,再根据key获取对应的value。


for(Map.Entry entry : maps.entrySet()){
System.out.println(entry.getValue());
}

方法三是获取Map.EntrySet,然后对Entry对象进行遍历,得到对应的value值。


maps.forEach((key,value)->{
System.out.println(value);
});

方法四是利用java8中的foreach进行遍历。


Iterator<Map.Entry<String, String>> it = maps.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = it.next();
System.out.println(entry.getValue());
}

方法五通过Map.EntrySet的Iterator,进行遍历。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nilaor
2010-05-15 · TA获得超过903个赞
知道小有建树答主
回答量:537
采纳率:0%
帮助的人:530万
展开全部
楼上的方法可以完成你的要求,这里还有另外一个方法供你参考,该方法不需要进行key的遍历,直接遍历value
Map data = new HashMap();
data.put("key1", "value1");
data.put("key2", "value2");
Iterator it = data.values().iterator();
while (it.hasNext()) {
String val = (String)it.next();
System.out.println(val);
}
其中,你的value是什么类型,在it.next();前面的类型转换就使用什么类型,比如这儿的value是String类型,这里则直接使用String进行类型转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5ca104357
2010-05-15 · TA获得超过2595个赞
知道小有建树答主
回答量:874
采纳率:100%
帮助的人:1359万
展开全部
//两种方法,有问题,给我发百度消息
public static void main(String[] args){
Map<String, String> map = new HashMap<String, String>();
map.put("id1", "wang");
map.put("id2", "sheng");

//方法一
Set<String> set = map.keySet();
for (String s:set) {
System.out.println(s+","+map.get(s));
}
//方法二
Set<Map.Entry<String, String>> entryseSet=map.entrySet();
for (Map.Entry<String, String> entry:entryseSet) {
System.out.println(entry.getKey()+","+entry.getValue());
}
}

参考资料: 还有其他问题的话,给我发百度消息

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式