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中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,进行遍历。
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进行类型转换
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());
}
}
参考资料: 还有其他问题的话,给我发百度消息