zoukankan      html  css  js  c++  java
  • 两个对象的 hashCode() 相同, 那么 equals() 也一定为 true吗?

    Java基础

    两个对象的 hashCode() 相同, 那么 equals() 也一定为 true吗?

    不对,两个对象的 hashCode() 相同,equals() 不一定 true。

    代码示例:

    String str1 = "keep";
    String str2 = "brother";
    System. out. println(String. format("str1:%d | str2:%d",  str1. hashCode(),str2. hashCode()));
    System. out. println(str1. equals(str2));
    

    执行的结果:

    str1:1179395 | str2:1179395
    
    false
    

    代码解读:很显然“keep”和“brother”的 hashCode() 相同,然而 equals() 则为 false,因为在散列表中,hashCode() 相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等。

  • 相关阅读:
    grep
    [NOI2009]植物大战僵尸
    sed
    YY的GCD
    awk
    CF1100E
    cat
    tac
    [学习笔记]基数排序
    more
  • 原文地址:https://www.cnblogs.com/coderD/p/13823651.html
Copyright © 2011-2022 走看看