如何检查哈希表中的密钥是否具有某个哈希码?

时间:2014-04-15 20:03:13

标签: java data-structures

例如,ht.put(“A”,0);哈希码是65.我如何搜索哈希表以查看哈希码为65的密钥是否存在?

2 个答案:

答案 0 :(得分:1)

您可以构造一个类,其哈希码是有问题的代码:

public class HashCodeWrapper {
    private final int hashCode;
    public HashCodeWrapper(int hashCode){
        this.hashCode = hashCode;
    }
    @Override
    public int hashCode(){
        return hashCode;
    }
    @Override
    public boolean equals(Object o){ return this.hashCode == o.hashCode(); }
}

然后,您可以将其传递到Hashtable#get(Object)

请注意,可能存在哈希冲突,在这种情况下,结果将是具有此哈希码的任何结果。但是,使用空检查,这足以检查是否存在此哈希码。

答案 1 :(得分:0)

要实现这一点,您必须遍历地图的entrySet()并检查每个key()的{​​{1}}与您要检查的部分值,hashCode()在您的示例中:

65