class KeyMaster {
public int i;
public KeyMaster(int i) { this.i = i; }
public boolean equals(Object o) { return i == ((KeyMaster)o).i; }
public int hashCode() { return i; }
}
public class MIt
{
public static void main(String[] args) {
Set<KeyMaster> set = new HashSet<KeyMaster>();
KeyMaster k1 = new KeyMaster(1);
KeyMaster k2 = new KeyMaster(2);
set.add(k1);
set.add(k1);
set.add(k2);
set.add(k2);
System.out.println(set.size()+":");
k2.i = 1; // this is creating another object in HashSet
set.remove(k1);
System.out.println(set.size()+":");
set.remove(k2);
System.out.print(set.size());
}
}
我已经向 HashSet 添加了两个对象并将其删除,但在最后一个 sop 中我仍然有大小 1。我同意我已经更新了 k2 的值,但我仍然没有将它添加到我的集合中。