i am adding objects to a hashSet , iam overriding hashcode() and equals() . i intentionally pass different instance variables in these
hashcode is diff but objects are equal still it is inserting both in hashset
code :
HashSet hs = new HashSet();
employee e1 = new employee();
employee e2 = new employee();
e1.setname("amol1"); e1.setcity("bombay");
e2.setname("amol1"); e2.setcity("delhi");
System.out.println("e1 --> "+e1.hashCode()+ " and e2 --> " +e2.hashCode() + " " + e1.equals(e2));
hs.add(e1); hs.add(e2)
overriden methods :
@Override
public int hashCode()
{
return city.hashCode();
}
@Override
public boolean equals(Object o)
{
employee e = (employee)o;
return getname().equalsIgnoreCase(e.getname());
}