Hallo,
ich versuche gerade in einer Hashmap ein Value auszulesen, denn ich aber nicht finde.
Ich rufe eine Methode auf, der ich als Parameter eine Map mit Key/Value Paaren übergebe. Ich kann an dieser Stelle die Datentypen (aus technischen Gründen) der Map nicht mitübergeben. Dann hole ich mir aus dem Map den Set der Schlüssel raus und suche in dem Set nach einem Schlüssel aus dem Set, der Set bekommt den richtigen Datentyp:
Der Schlüssel ist ein komplexer Datentyp mit überschriebenen hashCode() Methode:
Wie kann es sein, dass in meiner Ausgabe false ausgegeben wird. Es macht doch keinen Sinn, was habe ich übersehen?
Das ganze ist in Java 7 geschrieben.
ich versuche gerade in einer Hashmap ein Value auszulesen, denn ich aber nicht finde.
Ich rufe eine Methode auf, der ich als Parameter eine Map mit Key/Value Paaren übergebe. Ich kann an dieser Stelle die Datentypen (aus technischen Gründen) der Map nicht mitübergeben. Dann hole ich mir aus dem Map den Set der Schlüssel raus und suche in dem Set nach einem Schlüssel aus dem Set, der Set bekommt den richtigen Datentyp:
Code:
//schlüssel der Map holen
Set<KomplexType> setkeys = source.keySet();
//sicherstellen, dass mind. ein schlüssel vorhanden ist
if (setkeys.iterator().hasNext()) {
// set nach schlüssel suchen
System.out.println("Contains: "
+ setkeys.contains(setkeys.iterator().next())); // --> false
}
Der Schlüssel ist ein komplexer Datentyp mit überschriebenen hashCode() Methode:
Code:
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
return result;
}
Wie kann es sein, dass in meiner Ausgabe false ausgegeben wird. Es macht doch keinen Sinn, was habe ich übersehen?
Das ganze ist in Java 7 geschrieben.