检查hashmap是否包含除特定值以外的值

时间:2014-02-15 17:42:21

标签: java search hashmap

我正在尝试在JAVA中实现HashMap,在我的算法中,我必须找到任何键是否包含除特定值以外的值....例如,假设所有键都在地图应该有值0存储在其中。

如何检查地图是否包含不等于0的值。

我试过这个,但从逻辑上讲,这是不正确的我知道:

if(!hm.containsValue(0)) /* where hm is hashmap object*/

2 个答案:

答案 0 :(得分:4)

你必须迭代所有值并检查每一个值,看它是否不等于零,那就是O(n)。没有其他方法可以使用MapMap可以有效地找到,而不是用于查找中的内容。例如,使用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
        }
    }