LearningNotes icon indicating copy to clipboard operation
LearningNotes copied to clipboard

改变集合中对象属性,依然可以remove掉

Open valueNow opened this issue 7 years ago • 5 comments

我demo试了一个,改变集合中对象的属性,然后再remove这个元素,是可以remove掉得啊,打印集合的size,减一了啊

valueNow avatar Jun 01 '17 03:06 valueNow

image image 我这边试的demo也是可以remove掉

lianyuchen avatar Jun 07 '17 03:06 lianyuchen

我用的Eclipse也可以remove掉,求解答

qiongtony avatar Sep 11 '17 06:09 qiongtony

重写了equals 和hashCode方法吗? hashset的内部实现用的是hashmap. hashmap判定是 通过 是否是同一个对象 && hashcode相等. 或者 equals方法相等.

CodeJiang avatar Sep 14 '17 02:09 CodeJiang

这个Person类应该是重写了hashCode方法的,比如最简单的,

@Override hashCode() { return age; }

这样在p3修改了age之后对于hashset来说就变成另一个元素了,当然remove不掉,再添加时也会认为是另一个元素所以size会变成4

tongyingrui avatar Sep 14 '17 09:09 tongyingrui

remove 对象的地址,

Poney1 avatar Oct 13 '17 00:10 Poney1