zoukankan      html  css  js  c++  java
  • 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方法进行判断了。

  • 相关阅读:
    前端git开发分支各种场景管理
    RxJS Subject学习
    微信小程序登陆流程(20200322)
    vue依赖收集的策略
    eggjs2.x版本异步获取config配置方案
    dubbo连接过程
    计算机中对流的理解
    Egg.js运行环境配置场景
    Promise和Observable的映射
    eggjs异常捕获机制
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/13928608.html
Copyright © 2011-2022 走看看