今天学Java的时候看见了一道面试题把我迷住了。。。
其中person类重写过 hashcode和equals
如图p1的name改成CC后 哈希值是会变 所以它没被移除
那么问题一来了 怎么把改过名的p1删了 获取改过的p1的哈希值?(还没学到这个方法)
然后为毛下面新增了一个1001 CC 这个长的和改过的p1一毛一样 为啥哈希值算不同?
重写hashcode的代码能发出来看看哦,HashSet是用hashcode判断唯一的。
我后来想了一下 是不是跟双向链表有关
被改的p1不是去数组的其他位置了,而是到了原来那个位置的下面 因为是个链表加数组的底层
这样一来就想到通了
求解答啊