Hallo,
direkt noch ein zweites Thema von mir.
Ich habe in einem HashSet verschiedene Formeln und für alle die hash-Methode und natürlich die equals-Methode überschrieben.
Jetzt habe ich ein Objekt, das eigentlich schon im Set enthalten ist. Wenn ich über das gesamte Set iteriere, ergibt die equals Methode beim betroffenen Objekt auch true. Aber die contains Methode liefert false.
Hier ein kurzer Ausschnitt:
Die Ausgabe:
"Objekt sollte enthalten sein"
"contains liefert false"
Habe ich etwas vergessen? Muss ich noch etwas tun, außer die hash Methode überschreiben? Vielleicht angeben, dass die überschrieben hashCode Methode genutzt werden soll?
Danke nochmals!
direkt noch ein zweites Thema von mir.
Ich habe in einem HashSet verschiedene Formeln und für alle die hash-Methode und natürlich die equals-Methode überschrieben.
Jetzt habe ich ein Objekt, das eigentlich schon im Set enthalten ist. Wenn ich über das gesamte Set iteriere, ergibt die equals Methode beim betroffenen Objekt auch true. Aber die contains Methode liefert false.
Hier ein kurzer Ausschnitt:
Java:
for(RoboFormula form : beliefs) {
if(form.equals(f) && form.hashCode()==f.hashCode()) System.out.println("Objekt sollte enthalten sein");
}
boolean contains = beliefs.contains(f);
if(contains) System.out.println("contains liefert true");
else System.out.println("contains liefert false");
Die Ausgabe:
"Objekt sollte enthalten sein"
"contains liefert false"
Habe ich etwas vergessen? Muss ich noch etwas tun, außer die hash Methode überschreiben? Vielleicht angeben, dass die überschrieben hashCode Methode genutzt werden soll?
Danke nochmals!