Java中怎么遍历map中value值

如题所述

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(映射)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-21

    利用for循环

    利用迭代

    用keySet 迭代

4.enterySet 迭代

    资料拓展:

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

本回答被网友采纳
第2个回答  2018-07-20

遍历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,进行遍历。

本回答被网友采纳
第3个回答  2010-05-15
楼上的方法可以完成你的要求,这里还有另外一个方法供你参考,该方法不需要进行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进行类型转换
第4个回答  2010-05-15
//两种方法,有问题,给我发百度消息
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());
}
}

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

本回答被提问者采纳
相似回答