Рассмотрим код:Какой метод использует Set.removeAll() для использования ниже: equals или 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;
Я пытаюсь сделать это
orig.entrySet().removeAll(dup.entrySet());
Я вижу, что метод равенства называется; всегда ли это так, или вместо этого вместо этого можно вызвать compareTo?
Set - это интерфейс. Поведение removeAll зависит от реализации. Я считаю, что HashSet использует equals, а TreeSet использует compare или compareTo. –
всего лишь небольшая заметка: последняя строка ваших равных неверна (просто NOP). Вероятно, вам нужно что-то вроде: "return this.i == ((A) t) .i;" –