两个对象的hashCode()相同,则equals()也一定为true吗?
不一定。两个对象的 hashCode() 相同,equals() 不一定 true。比如在map中,hashCode() 相等,只能说明这两个键值对的哈希值相同,不代表这两个键值对相等。例如:
String str1 = "Aa";
String str2 = "BB";
System.out.println(String.format("str1: %d | str2: %d",str1.hashCode(),str2.hashCode()));
System.out.println(str1.equals(str2));
输出结果:
str1: 2112 | str2: 2112
false