❶ 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: 代碼簡潔而優雅~