• 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不是同一个人");
            }
        }

    结果如下所示:

  • 相关阅读:
    ImageMagick出错/undefined in findresource
    只对目录更改权限的办法(xarg)
    关于linux下php环境
    php 上传大文件
    做下载系统时的一些HTML文件头
    POJ 1694 An Old Stone Game ★(排序+树+递归)
    POJ 1991 Turning in Homework ★(区间DP)
    POJ 2452 Sticks Problem ★ (单调栈+RMQ)
    HDU 2069 Coin Change (母函数)
    HDU 2069 Coin Change (母函数)
  • 原文地址:https://www.cnblogs.com/expiator/p/7813247.html
Copyright © 2020-2023  润新知