Hallo,
kann mir jemand mit der hashCode Funktion eines Objekts helfen? Das Objekt besteht aus 2 wichtigen int-Werten, die in den Feldern smaller und larger gespeichert werden. Beim Googlen bin ich bisher nicht auf eine geeigneten mathematischen Funktion gestoßen.
Ausprobiert habe ich:
Zum Testen benutze ich folgenden Code:
Vielen Dank für eine Antwort, ich freu mich auch über einen Link!
kann mir jemand mit der hashCode Funktion eines Objekts helfen? Das Objekt besteht aus 2 wichtigen int-Werten, die in den Feldern smaller und larger gespeichert werden. Beim Googlen bin ich bisher nicht auf eine geeigneten mathematischen Funktion gestoßen.
Ausprobiert habe ich:
Java:
private void setCreateHash(int i, int j){
if(i > j) {
smaller = j; larger = i;
} else {
smaller = i; larger = j;
}
int result = 17;
result = 37 * result + smaller;
result = 37 * result + larger;
hashCode = result;
}
public int hashCode(){
return hashCode;
}
Zum Testen benutze ich folgenden Code:
Java:
@Test
public void testHash(){
TreeSet<HashObj> set = new TreeSet<HashObj>();
for(int i=0; i<4000; i++){
for (int j=i+1; j<4000; j++){
HashObj o = new HashObj(i,j);
if(set.contains(o)){
System.out.println("i: " + i + " j: " + j + " code: " + o.getHashCode() );
}
assertFalse(set.contains(o));
set.add(o);
}
}
}
Vielen Dank für eine Antwort, ich freu mich auch über einen Link!