Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当hashCode相等,但两个元素的概率不相等时,写hashCode的问题_Java_Dictionary_Hashcode - Fatal编程技术网

Java 当hashCode相等,但两个元素的概率不相等时,写hashCode的问题

Java 当hashCode相等,但两个元素的概率不相等时,写hashCode的问题,java,dictionary,hashcode,Java,Dictionary,Hashcode,我正在开发一个ADT(抽象数据类型)FMap。我已经完成了对equals方法的重写。现在我需要处理HashCode。但我对说明书有点困惑 如果m1和m2是FMap ADT的值,以及 ! (m1.equals(m2)) then m1.hashCode() is unlikely to be equal to m2.hashCode(). 注:“不太可能”一词的解释如下。对于每种类型的K和V,如果m1和m2都是从一组FMap值中随机选择的,那么对于每一个非负整数n和int值h,随机

我正在开发一个ADT(抽象数据类型)FMap。我已经完成了对equals方法的重写。现在我需要处理HashCode。但我对说明书有点困惑

如果m1和m2是FMap ADT的值,以及

    ! (m1.equals(m2))



then m1.hashCode() is unlikely to be equal to m2.hashCode().
注:“不太可能”一词的解释如下。对于每种类型的K和V,如果m1和m2都是从一组FMap值中随机选择的,那么对于每一个非负整数n和int值h,随机选择的FMap m的概率

n==m。大小()为

对于每个密钥k,m.containsKey(k)的概率

     h == k.hashCode() is at most 1/5
     h == v.hashCode() is at most 1/5
对于每个值v,v等于(m.get(k))的概率

     h == k.hashCode() is at most 1/5
     h == v.hashCode() is at most 1/5
上述三种概率是独立的

当m1和m2不相等时,m1.hashCode()==m2.hashCode()的概率小于40%

我对这一部分很困惑