不同对象的hashcode是否一定不一样
假设我创建了两个不同的类:User和Admin
User user1 = new User();
User user2 = new User();
user1和user2的hashcode值一定不一样吗
Admin admin1 = new Admin();
user1和admin1的hashcode值一定不一样吗
[解决办法]
当然不一定,hashcode本身就是个函数,是可以重载的,你完全可以写个函数总是返回固定值。
但hashcode函数从设计要求上来说,要尽量保证:不同对象的hashcode不同。
[解决办法]
补充下关于hashcode的设计目标,比如:
User user1 = new User("张三");
User user2 = new User("李四");
这种情况下应该尽量保证 user1 和 user2 的 hashcode 不一致,但是:
User user1 = new User("张三");
User user2 = new User("张三");
这种情况下应该尽量保证 user1 和 user2 的 hashcode 相同。
[解决办法]
hashCode 如果不重载,肯定会不一样
如果被重载了,就看自己的需要了
[解决办法]