❶ java Map 根据Map的值(value)取键(key)
java根据Map的值(value)取键(key) 的实现方法有4种,分别为:
(1)使用for循环遍历
(2)使用Iterator迭代器
(3)使用KeySet迭代
(4)使用EnterySet迭代
下面为以上4种方法具体实现的代码:
1、使用for循环遍历
public static Object getKey(HashMap<Object,Object> map, String v) {
String key = "";
for (Map.Entry<String, Object> m :map.entrySet()) {
if (m.getValue().equals(v)) {
key = m.getKey();
}}
return key;
}
❷ Java中便历Map的几种方法
常见的Map遍历有下面四种方法:
importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.Map.Entry;
publicclassMapDemo{
publicstaticvoidmain(String[]args){
//准备好需要遍历的Map
HashMap<String,Integer>map=newHashMap<String,Integer>();
map.put("Tom",85);
map.put("Jack",97);
test1(map);
test2(map);
test3(map);
test4(map);
}
//方法一:迭代器方式
//特点:效率高,速度快,但是代码量多
publicstaticvoidtest1(HashMap<String,Integer>map){
Iterator<Entry<String,Integer>>it=map.entrySet().iterator();
while(it.hasNext()){
Entry<String,Integer>e=it.next();
System.out.println("name:"+e.getKey()+" score:"+e.getValue());
}
}
//方法二:map.entrySet()for循环
//特点:效率也较高,速度较快,且写法比方法一简单
publicstaticvoidtest2(HashMap<String,Integer>map){
for(Entry<String,Integer>e:map.entrySet()){
System.out.println("name:"+e.getKey()+" score:"+e.getValue());
}
}
//方法3map.keySetfor循环
// 特点:效率较慢
publicstaticvoidtest3(HashMap<String,Integer>map){
for(Stringkey:map.keySet()){
System.out.println("name:"+key+" score:"+map.get(key));
}
}
//方法四:forEach
//特点速度较慢,但是代码少,简洁;(需要Java8或以上版本的支持)
publicstaticvoidtest4(HashMap<String,Integer>map){
map.forEach((k,v)->System.out.println("name:"+k+" score:"+v));
}
}
四种方法之间的效率比较
(test1≈test2)>(test3≈test4)
推荐: 数据量特别大的时候 使用方法1: 代码长,但是效率高
数据量较少的, 那么使用方法4: 代码简洁而优雅~