HashMap的方法hashCode及其效果

时间:2015-01-14 10:22:04

标签: java hashmap hashcode

我正在寻找哈希,更具体地说是hashMap。我不理解hashCode()方法,并且真的希望有人为我清除它。我为了一点点测试,编写了这段代码:

    Map<Integer, Integer> map = new HashMap<Integer, Integer>();

    map.put(4,4);
    map.put(5,4);

    System.out.println(map.hashCode());

这里的输出是1.但是当我改变它时有点像这样:

    map.put(2,5);
    map.put(7,4);

输出为10.

如何计算,或者如何在不运行打印出来的情况下知道?

提前致谢!

1 个答案:

答案 0 :(得分:0)

HashMap的hashCode是地图中条目的函数,但是调用map.hashCode()并没有多大意义。

hashCode类的HashMap方法的主要用途是确定应该存储和搜索HashMap密钥的哪个桶。这是通过在hashCode中为您要放置/搜索的密钥调用HashMap来完成的。

顺便说一句,这是您在地图中输入的条目hashCode的计算:

  • HashMap的hashCode是条目hashCode的总和。
  • hashCode的{​​{1}}是关键字XOR Entry的值hashCode
  • Integer的hashCode是int值。

第一次测试:

hashCode

第二次测试:

4^4 + 5^4 = 0 + 1 = 1;