我正在尝试在JAVA中实现HashMap
,在我的算法中,我必须找到任何键是否包含除特定值以外的值....例如,假设所有键都在地图应该有值0存储在其中。
如何检查地图是否包含不等于0的值。
我试过这个,但从逻辑上讲,这是不正确的我知道:
if(!hm.containsValue(0)) /* where hm is hashmap object*/
答案 0 :(得分:4)
你必须迭代所有值并检查每一个值,看它是否不等于零,那就是O(n)
。没有其他方法可以使用Map
,Map
可以有效地找到键,而不是用于查找值中的内容。例如,使用Java中的标准Map
实现:
Integer zero = new Integer(0);
for (Integer i : hm.values()) {
if (!zero.equals(i)) {
System.out.println("found one non-zero value");
break;
}
}
答案 1 :(得分:1)
您可以按如下方式定义地图:
Map<String, Integer> map = new HashMap<String, Integer>();
并检查它是否包含非零值,如下所示:
for ( Integer value: map.values()) {
if ( value != 0) {
// non-zero value found in the map
}
}