Это потому, что hashmap позволяет хранить повторяющиеся значения.
Вы пытаетесь сопоставить «ABC» с e1 и «XYZ» с e2.Даже если e1 равно e2, «ABC» отличается от «XYZ», и поэтому размер вашей карты равен двум (теперь ваша карта имеет ABC-> e1, XYZ-> e2).
Если вы хотите запретить добавление повторяющихся значений в хэш-карту, вам нужно выполнить итерацию по всей хеш-карте, прежде чем вставлять что-либо в вашу хеш-карту, и проверить, не присутствует ли то же значение.
mymap = insertIntoHashMap("ABC",e1,mymap);
public Hashmap<String,Employee> insertIntoHashMap(String key, Employee employee,Hashmap<String,Employee> mymap)
{
boolean insert = true;
for(String employeeKey : mymap.keySet())
{
if(mymap.get(employeeKey).equals(employee))
{
insert = false;
break;
}
}
if(insert)
{
mymap.put(key,employee);
}
return mymap;
}