Witam
stworzylem najprostsza jak sie da klase
public class Person {
public String name;
public String lastname;
@Override
public int hashCode() {
return name.length() + lastname.length();
}
}
hashCode celowo taki nedzny, zeby sprawdzic czy nie dodam 2 osob o takiej samej ilosci literek w imieniu i nazwisku.
Do tego kodzik
Set<Person> set2 = new HashSet();
Person person1 = new Person();
person1.name = "m";
person1.lastname = "k";
Person person2 = new Person();
person2.name = "p";
person2.lastname = "c";
set2.add( person2 );
set2.add( person1 );
System.out.println( person2.hashCode() );
System.out.println( person1.hashCode() );
for( Iterator<Person> iter = set2.iterator(); iter.hasNext();){
Person per = iter.next();
System.out.println( per.name + " " + per.lastname );
}
co daje wynik
2 (hashcode persony numer 2 ;)
2 (hashcode persony numer 1 ;)
m k
p c
czemu mimo rownego hashCodu pozwala dodac do seta nie nadpisujac tych obiektow?