相关疑难解决方法(0)

hashcode()和equals()方法

所以我对hashcode()和equals()方法有疑问

假设我只是写了一个非常基本的程序来覆盖这两个方法

import java.util.*;

class Employee
{
   private String name;
   private int empid;


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


   public int getEmpid()
   {
       return empid;
   }


   public String getName()
   {
       return name;
   }


   public boolean equals(Object obj)
   {
       System.out.println("equals has just been called...");
       Employee e1=(Employee)obj;
       return ((name.equals(e1.name)) && (empid==e1.empid));
   }


   public int hashCode()
   {
       System.out.println("hashcode called...");
       return empid;
   }

}
Run Code Online (Sandbox Code Playgroud)

然后,假设我编写了另一个类来添加和迭代HashSet中的元素

class Five
{
   public static void main(String args[])
   {
       HashSet hs1=new HashSet();
       hs1.add(new Employee("Alex",25));
       hs1.add(new Employee("Peter",25));
       hs1.add(new …
Run Code Online (Sandbox Code Playgroud)

java equals hashcode hashset

10
推荐指数
1
解决办法
6926
查看次数

标签 统计

equals ×1

hashcode ×1

hashset ×1

java ×1