В интервью мне было предложено эффективно продемонстрировать реализацию метода hashcode и equals, поэтому я построил ниже pojo, но интервьюер сказал, что это не правильное и лучшее выполнение, поскольку это может привести к столкновению, пожалуйста, вы можете посоветовать ниже реализации хэш-код является правильным или нетЭффективное использование хэш-кода pojo в java
public class Emp {
String name, job;
int salary;
public Emp(String n, String j, int s) {
this.name = n;
this.job = j;
this.salary = s;
}
public int hashcode() {
return name.hashCode() + job.hashCode() + salary;
}
public boolean equals(Object o) {
Emp e1 = (Emp) o;
return this.name.equals(e1.name) && this.job.equals(e1.job) && this.salary == e1.salary;
}
}
Что произойдет, если один из этих значений равно нулю? Что произойдет, если объект, переданный в equals(), не является экземпляром Emp? –
http://stackoverflow.com/a/113600/3850595 –
@KevinWorkman Спасибо, да, я согласен, я не думал об этих ситуациях, не могли бы вы посоветовать, как я могу справиться с этими ситуациями здесь сами? –