重写对象的equals方法和hascode方法

public class Student {


    private String id;
    private String name


    public String getId() {
       return this.id;
    }
    public String getName() {
       return this.name;
    }
 
  @override
  public boolean equals(Object obj) {
      //判断要判断的对象是不是由Student创建的
      if(!(obj instanceof Student)) {
         return false;
       }
      Student st = (Student)obj;//强制转换
      return st.getId().equals(this.id) && st.getName().equals(this.name)
    }
  @override
  public int hasCode() {
     return this.id.hasCode()*this.name.hasCode();
    }


 }
今天在使用List方法的removeAll时,当List里面装的是对象时,这个方法会失效。因为没有重写equals方法和
hasCode()方法。因为调用removeAll()方法。如果List里面存储的是对象,会调用对象的equals方法和hasCode方法

因此要重新写,没有重写的对象比较是失效的。第一次遇到要比较对象是否相等。主要是对象的属性值是否相等


注:instanceof用法,判断前面的对象是否是后面的类创建的 比如 st instanceof Student就会返回true;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值