Wie kann ich ein Objekt wieder erkennen?

-ben-

Mitglied
Hy zusammen!

Ich habe folgendes Problem: Ich habe einen RMI-Client und Server. Der Client instanziert ein Objekt der selber geschriebenen Klasse "Person". Die Klasse beinhaltet als Instanzvariable eine HashMap der die keys und values angehängt werden. Der Client schickt das Objekt serialisiert an den Server. Der Server speichert das Objekt in einem Cache.
Nun möchte ich auf dem Server das Objekt "wieder erkennen". Mit == und person.equals(person) geht das ned. Auch wenn die beide Objekte inhaltlich identisch sind. Versteh ich auch, da es sich ja nicht um das selbe Objekt handelt.
Aber ich möchte das Objekt auf eine effiziente Weise vergleichen können, ohne jeden Wert der HashMap durchzugehen und zu vergleichen.

Gibt es da eine effiziente Möglichkeit?

Hier ein Beispiel was ich meine:
Code:
Person p1 = new Person();
p1.setName( "Muster" );
p1.setAddress( "Strasse123" );


Person p2 = new Person();
p2.setName( "Muster" );
p2.setAddress( "Strasse123" );

System.out.println( p1.equals( p2 ) );  // --> false
System.out.println( p1 == p2 );   // --> false

danke und gruss
ben
 
Hy Snape

Danke für deine Antwort! Deine Idee mit dem Überschreiben der equals() Methode von Object prima! :)
Wieso meinst du, soll ich noch das Comparable interface implementieren?

IMHO ist das gar nicht nötig...

Danke und Gruss
ben
 
Comparable ist auch meiner Meinung nach in diesem Fall zuviel des Guten, da ja nur die Gleichheit überprüft werden soll.

Interessant ist das Interface vor allem, wenn man Sortierfunktionen nutzen will, eigene oder auch die von Sun in diversen Klassen bereitgestellten.

Gruß hpvw
 
Zurück