求教一个关于map的问题
大家都知道在map中数据以键值对的形式存储的,通过key即可得到对应的value。
问题来了,能否通过value查找对应的key?或者有没有其他的数据类型或jdk中现成的方法能够实现的?
[最优解释]
public Object getKey(java.util.Map map,Object value)
{
if(map==null)return null;
java.util.Collection entrys=map.entrySet();
java.util.Iterator iterator=entrys==null?null:entrys.iterator();
while(iterator!=null&&iterator.hasNext())
{
java.util.Map.Entry entry=(Entry) iterator.next();
if(entry.getValue()!=null&&entry.getValue().equals(value))
{
return entry.getKey();
}
}
return null;
}
Map<String, String> map = new HashMap<String, String>();
map.put("a", "123");
map.put("b", "456");
map.put("c", "789");
String str = "123";
Iterator<String> it = map.keySet().iterator();
while(it.hasNext()){
String var = (String)it.next();
if(map.get(var).equals(str)){
System.out.println(var + "," + str);
}
}