HashMap的方法hashCode及其作用

HashMap's method hashCode and it's effects

我正在研究散列,更具体地说是 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。

这是如何计算的,或者如果没有 运行 我怎么知道它会打印出什么?

提前致谢!

HashMap 的hashCode 是映射中条目的函数,但是像你这样调用map.hashCode() 没有太大意义。

HashMapclass对hashCode方法的主要用途是确定在HashMap的哪个bucket中存储和查找一个key。这是通过在 HashMap.

中为您 putting/searching 的密钥调用 hashCode 来完成的

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

  • HashMap的hashCodehashCode项的总和。
  • EntryhashCode 是键的 hashCode XOR 值的 hashCode
  • Integer的hashCode是int值。

第一次测试:

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

第二次测试:

2^5 + 7^4 = 7 + 3 = 10;