| 本帖最后由 司懿卓 于 2013-1-18 19:42 编辑 
 new R(-2) : 应该是创建了一个 Field 为int 型的对象.
 因为,你在添加到集合中时,是 ts.add(new R(-2));这样添加的. new R(-2)没有引用,是临时创建的对象.
 所以你在删除时,不能直接删除R (-2).  所以只能创建一个相同的对象用来删除. 就是 ts.remove(new R(-2));
 这个应该是set集合, 是无序的,不可重复的,只能通过集合元素本身来访问.
 所以,这个集合的 equals 方法和hashCode方法必须被重写,
 equals通过Field和哈希值的比较来确定是否是同一个对象..
 一般,重写后是new R(-2) == new R(-2) ..
 故此,ts.remove(new R(-2))  就是删除之前添加的那个对象...
 
 Field 是成员变量..
 |