si je remplace la méthode equals dans la classe de modèle et renvoie toujours false. et le hashCode renvoie toujours une valeur constante. si je crée un objet et l'ajoute à Définir comment HashSet/HashMAp détecte les doublons?Equals et 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");
}
si la méthode Equals renvoie false i.e e1.equals(e1)
renvoie la valeur false. donc les valeurs devraient être ajoutées deux fois mais seulement sa ajoutée. Quelqu'un peut-il s'il vous plaît expliquer cela. J'ai googlé et effacé mon concept sur HashCode et équivaut à contrat mais ici je suis défaillant.
Ce ne sera pas, ce sera toutes les entrées séparées (dans le même compartiment) –