答案:不对
原因:
因为hashCode()并不是完全可靠,有时候不同的对象他们生成的hashcode也会一样(生成hash值得公式可能存在的问题),所以hashCode()只能说是大部分时候可靠,并不是绝对可靠。
例如:
String a = "Ma";
String b = "NB";
System.out.println(a.hashCode()+ " " +b.hashCode());
两个字符串的 hashcode 都为2484,但是用equals方法比较绝对是不同的。
结论:
equals()方法比较两个对象,如果为true,那这两个对象的hashcode一定相同。
两个对象hashcode相同,equals()方法比较不一定相同。