zoukankan      html  css  js  c++  java
  • java比较两个对象是否相等

    java比较两个对象,可以通过重写equals()实现。

    1.比较对象时, ==比较的是地址,而equals()比较的是对象内容

    2.重写equals()方法必须重写hashCode()

    示例代码如下:

    Person.java

    可以自动生成get()、set()、构造函数、equals()、hashCode等方法。

    Idea选择类的代码,写入属性名,如下为name和age,然后右键-->Generate,就可以自动生成了。

    eclipse类似。搜索下快捷键也可以自动生成。

    public class Person {
        private String name;
        private int age;
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
    
            Person person = (Person) o;
    
            if (age != person.age) return false;
            return name.equals(person.name);
        }
    
        @Override
        public int hashCode() {
            int result = name.hashCode();
            result = 31 * result + age;
            return result;
        }
    }
    ObjectEquals.java如下所示
    public class ObjectEquals {
        public static void main(String[] args) {
            Person person1=new Person("lin",25);
            Person person2=new Person("lin",25);
            System.out.println("通过==比较对象:");
            if(person1==person2) {
                System.out.println("person1和person2是同一个人");
            }else {
                System.out.println("person1和person2不是同一个人");
            }
            System.out.println("通过重写equals()和hashCode()比较对象:");
            if(person1.equals(person2)) {
                System.out.println("person1和person2是同一个人");
            }else {
                System.out.println("person1和person2不是同一个人");
            }
        }

    结果如下所示:

  • 相关阅读:
    Core Api跨域问题解决
    文件夹浏览权限
    反射(C#基础回顾04)
    二维码扫码问题
    MVC接口跨域问题
    27.用户注册场景:数据验证(2):自定义验证tag、正则验证
    26.用户注册场景:数据验证(1):第三方验证库、自定义错误信息
    25.引入gorm,用户数据入库
    24.场景练习,基本接口(用户注册接口)
    22.使用Micro为我们的rpc服务创建http api网关
  • 原文地址:https://www.cnblogs.com/expiator/p/7813247.html
Copyright © 2011-2022 走看看