set集合存对象的时候是如何判断是不是同一个对象,其中含有重写equals方法和hashcode方法 后续

一开始,set集合里面只存进一个对象,

set集合存对象的时候是如何判断是不是同一个对象,其中含有重写equals方法和hashcode方法  后续

 

存第二个对象时候,由于重写了hashcode方法,只要价格都是10就返回1,所以hashcode一样的话,再去进行equals方法判断,此时这个也重写了,this代表的当前这个要想集合里面添加的对象,

也就是two,而括号里面传的要比的对象,也就是one,因为他俩名字一样,所以返回了true,认定为是同一个对象。后来再向集合添加three的时候,你会发现并没有走返回true这个逻辑,而是这直接走

下面的object对象的equals方法里,一个是当前对象three的名字测试1,而另一个就是集合里一开始存进去的对象,名字是测试,返回的结果当然是false,所以就认定为不同对象,就存进集合里了。

 set集合存对象的时候是如何判断是不是同一个对象,其中含有重写equals方法和hashcode方法  后续

 

 set集合存对象的时候是如何判断是不是同一个对象,其中含有重写equals方法和hashcode方法  后续

 

上一篇:javaSE一些实习问题


下一篇:技术问答-17