java重载equals和hashCode
Posted zslm___
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java重载equals和hashCode相关的知识,希望对你有一定的参考价值。
class Employee { private int salary; private java.util.Date hireDay; private String name; public int getSalary() { return salary; } public void setSalary(int salary) { this.salary = salary; } public Date getHireDay() { return hireDay; } public void setHireDay(Date hireDay) { this.hireDay = hireDay; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Employee(String name, int salary, Date hireDay) { this.name = name; this.hireDay = hireDay; this.salary = salary; } public Employee() { } static private HashMap<String, String> dict = new HashMap<String, String>(); static { num = 0; /* dict.put("1","Employee"); dict.put("2","Employee");*/ } @Override public String toString() { if (hireDay == null) hireDay = Calendar.getInstance().getTime(); SimpleDateFormat formatter; formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return String.format("name:%s,salary:%d,hireDay:%s", name, salary, formatter.format(hireDay)); } static int num; public static int getNum() { return num; } public static int setNum(int a) { num += a; return getNum(); } @Override public int hashCode() { //0 int result = 11; result = result * 17 + (name == null ? 0 : name.hashCode()); result = result * 17 + (hireDay == null ? 0 : hireDay.hashCode()); //result=result*17+salary; return result; } @Override public boolean equals(Object obj) { if (obj == null || !(obj instanceof Employee)) return false; if (this == obj) return true; Employee instance = (Employee) obj; return name.equals(instance.name) && hireDay.equals(instance.hireDay); } }
以上是关于java重载equals和hashCode的主要内容,如果未能解决你的问题,请参考以下文章
java 集合中重写hashCode方法和重写equals方法啥关系?
hashmap中equals() 和hashcode(),请教