Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java重写equals方法和hashcode

作者:千山暮雪ミ   发布日期:2026-01-02   浏览:27

// 定义一个类来演示重写 equals 和 hashCode 方法
public class Person {
    private String name;
    private int age;

    // 构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getter 和 Setter 省略

    // 重写 equals 方法
    @Override
    public boolean equals(Object obj) {
        // 检查是否为同一对象
        if (this == obj) {
            return true;
        }
        // 检查是否为 null 或类型不匹配
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        // 类型转换
        Person person = (Person) obj;
        // 比较属性值
        return age == person.age && (name != null ? name.equals(person.name) : person.name == null);
    }

    // 重写 hashCode 方法
    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + age;
        return result;
    }

    // 测试代码
    public static void main(String[] args) {
        Person p1 = new Person("Alice", 25);
        Person p2 = new Person("Alice", 25);
        System.out.println(p1.equals(p2)); // 输出 true
        System.out.println(p1.hashCode() == p2.hashCode()); // 输出 true
    }
}

解释说明:

  1. equals 方法:用于判断两个对象是否相等。首先检查是否为同一对象,然后检查是否为 null 或类型不匹配,最后比较对象的属性值。
  2. hashCode 方法:用于生成对象的哈希码。哈希码是基于对象的内容生成的整数,通常用于哈希表(如 HashMapHashSet)中。为了确保一致性,如果两个对象通过 equals 方法被认为是相等的,那么它们的 hashCode 方法返回的哈希码也必须相同。
  3. 测试代码:创建了两个 Person 对象,并验证它们的 equalshashCode 方法是否按预期工作。

上一篇:java的三大特征

下一篇:java比较字符串大小的方法

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java读取excel中的图片

java新建

java base64 加密

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站