java - 修改一个类,使其可以用作 HashMap 中的键

标签 java

class Employee

{

    private String name;
    private int age;
    private int empid;

    public Employee(String name, int age, int empid) 
    {
        super();
        this.name = name;
        this.age = age;
        this.empid = empid;
    }
}

如何修改上面的类,使其可以用作 HashMap 中的键

最佳答案

对于要用作 HashMap 中的键的类,基本上需要完成三件事。首先使类不可变,其次重写 hashCode 方法,第三重写 equals 方法。

使类不可变。以下是一些不变性规则:

  • 将类(class)定为 final类
  • 将所有成员设为最终成员,并在静态 block 或构造函数中显式设置它们
  • 将所有成员设为私有(private)
  • 没有修改状态的方法

通过本教程了解有关创建不可变类的更多信息:

http://javarevisited.blogspot.in/2013/03/how-to-create-immutable-class-object-java-example-tutorial.html

要了解如何重写 hashCode 和 equals 方法,请按照以下步骤操作:

http://javarevisited.blogspot.in/2011/02/how-to-write-equals-method-in-java.html

关于java - 修改一个类,使其可以用作 HashMap 中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17554577/

相关文章:

Java、Spring Boot、测试、entityManagerFactory

java - 错误: variable might not have been initialized

java - layoutroot无法解析

java - 如何创建独立的可执行jar文件

构造函数中的 Java 条件以调用父构造函数

java - 注入(inject)通用 ViewModel Dagger Hilt Android

java - 根据主体tomcat重定向请求

java - 如何使用scraper扩展文本

java - 在 weblogic 上登录 web 服务

Java 以前的数组值设置为 0