查找HashMap是否包含选定的值并返回键值
这是HashMap
是在首位取得 ...
(不知道你的“要经过的所有条目顺序”的意思,不过,这里只有1每个键进入)
编辑:
现在你编辑这个问题,答案是没有! :(
如果你需要的功能,设计出存储在其它的值(即是有道理的希望)每个值的位置,自己的双向HashMap
,然后使用类。HashMap
s的不适合这一点。
使用HashMap.containsKey()知道,如果它包含一个给定的关键。 使用HashMap.keySet()或HashMap.entrySet()中检索条目或值的集合,并在其上依次遍历。
常用模式是使用
if(hashMap.containsKey(key)) {
Object o = hashMap.get(key);
}
但是,如果您知道任何值都不是null
(许多地图集合不允许为null),则可以执行以下更高效的操作。
Object o = hashMap.get(key);
if (o != null) {
}
BTW:containsKey方法是一样的
Set<Key> keys = hashMap.keySet();
boolean containsKey = keys.contains(key);
呃...''包含'在'HashMap'上?那个新的... – Mehrdad 2011-03-08 09:41:53
@Mehrdad,你是对的,它的containsKey,与Set混淆。 ;) – 2011-03-08 09:59:10
你可以找到你正在寻找的信息,但它会是低效:
Object key;
Object val;
HashMap hm = new HashMap();
for (Iterator iter = hm.entrySet().iterator(); iter.hasNext();) {
Map.Entry e = (Map.Entry) iter.next();
if (key.equals(e.getKey()) && val.equals(e.getValue())) {
// do something
}
}
正如一些建议其他答案,你可能会考虑一个更好的数据结构来解决你正在试图解决的问题。
请首先看看地图界面 – 2011-03-08 09:29:14
如果您将问题改为意思相反,那么您应该在提及的问题中提到,或者所有现有的答案都会显得很不合适。 – 2011-03-08 09:40:58
[可能的复制:给定的详细说明] [1] [1]:http://*.com/questions/1383797/java-hashmap-how-to-get-key-from-value – cryptickp 2013-07-30 16:12:58