Если я переопределяю метод equals в классе модели и всегда возвращаю false. и hashCode всегда возвращает постоянное значение. если я создаю объект и добавлю его, чтобы установить, как HashSet/HashMAp обнаруживает дубликаты?Equals и HashMap/HashSet
public class Employee {
int id;
String name;
@Override
equals(){
return false;
}
}
public static void main(String[] args) {
HashMap<Employee,String> hk= new HashMap<Employee,String>();
Employee e1 = new Employee();
e1.setId(18);
e1.setName("roohi");
hk.put(e1, "hello");
hk.put(e1, "hello");
}
если метод Equals возвращает false i.e e1.equals(e1)
возвращает false. поэтому значения должны быть добавлены дважды, но только добавлены. Может кто-нибудь объяснить это. Я googled и очистил мою концепцию на HashCode и равный контракт, но здесь я терплю неудачу.
Это не будет, все будет отдельным записям (в том же ковше) –