往一个HashSet里装类P的对象p1,p2,p3。
类P覆写了hashCode和equals
hashCode的计算调用了成员变量x;
该x在构造函数中被初始化 this.x = x
然后又提供了一个修改x的方法 setX
----------------
将p1,p2,p3加入HashSet hashset里后,修改了p1.x的值
之后用hashset.remove(p1)是没办法从hashset里把p1删掉的,因为p1的hash值改变了,找不到p1。
那为什么Iterator还是正常工作呢?还是可以找到这个p1呢?
|
|