首页上一页 1 下一页尾页 2 条记录 1/1页
在视频java第二季的9.8中,老师的说道把p2的id改动了后,然后删除p2,结果p2没有删掉,原因是改动后的p2哈希值变成id=5的哈希值,所以没删掉。依据视频来看,hash码与id有关,但id不是哈希码。
我在想,是不是p2的哈希码一开始实例化(假设为2,这个2不是它的id)就已经不能修改了,所以即使后面将p2的id改为5,去删除它,但是因为p2的哈希码(为2)没变,而要删除的这个p2相当于一个实例化时哈希码(为5,并不是id),所以删除不了。同样,视频后面有两个一样的person,也是因为前一个哈希码为2,后一个哈希码不为2,所以才能添加进来。因为hashset必须要hashcode返回值类型相同与equals方法返回为true。