Betrachten Sie den Code:Welche Methode verwendet Set.removeAll() darunter: gleich oder compareTo?
class A {
private int i;
boolean equals(Object t) {
if (this == t)
return true;
if (!(t instanceof A))
return false;
if (this.i == t.i);
}
}
Map<String,A> orig;
Map<String,B> dup;
ich diesen
orig.entrySet().removeAll(dup.entrySet());
ich, dass die Methode equals sehen zu tun versuchen heißt; ist das immer wahr, oder kann man stattdessen compareTo aufrufen?
Set ist eine Schnittstelle. Das Verhalten removeAll hängt von der Implementierung ab. Ich glaube, dass HashSet equals verwendet, während TreeSet compare oder compareTo verwendet. –
nur eine kleine Anmerkung: die letzte Zeile Ihres Gleichen ist nicht korrekt (nur ein NOP). Wahrscheinlich wolltest du so etwas wie: "return this.i == ((A) t) .i;" –