201 01 Android 零基础入门 03 Java常用工具类 04 Java集合 03 Set集合 05 添加重复的宠物猫信息数据

201 01 Android 零基础入门 03 Java常用工具类 04 Java集合 03 Set集合 05 添加重复的宠物猫信息数据

本文知识点:添加重复的宠物猫信息数据

说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

添加重复的宠物猫信息数据

添加重复的宠物猫对象

mark
添加后的结果,添加成功了?
思考一下,这符合Set集合的规则嘛?不是说不允许添加重复数据嘛?
mark

疑问:
之前相同的字符串不是不能添加到Set集合中嘛?
为什么重复的宠物猫对象可以添加成功呢?

mark

原因分析:
字符串是系统提供给我们的类,那里面判断数据是否重复的规则,也就是两个String对象是否完全一样,String对象中的属性是否完全一样,这些信息已经定义好了的,我们直接拿过来使用即可。

而现在,使我们自己定义类,自己定义宠物猫类,那如何判断两个宠物猫类就是一样的呢?
mark

这就涉及到,Object类中hashSet()和toString()这两个方法的使用了。

重写Object类中的hashCode方法与equals方法

所以,在Cat类中,我们还需要再重写2个方法——hashCode()和equals()

通过对这2个方法的重写,来判断2个宠物猫对象的信息是否相等。
mark

使用Eclipse工具来添加对hashCode和equals方法的重写
mark

重写hashCode和equals方法
重写hashCode方法,直接用Eclipse工具提供的就好(具体的代码和原理这里就不展开详细讲了),hash表和hashCode的原理后续再补充
mark

重写equals方法
mark
mark

重写hashCode和equals方法之后,再测试添加重复对象

添加失败
mark

添加失败,就符合了我们所说的:Set集合不允许添加重复元素

这里,我们也看到添加自定义类对象和添加String类对象还是有区别的。自定义类中一定还是会涉及到一个比较的问题,即:如何判断自定义的对象是否相等。
此时,判断相等与否就需要重写hashCode和equals方法进行判断了。

原文地址:https://www.cnblogs.com/xlfcjx/p/13928608.html