1 回答

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
這里的問(wèn)題是你的equals方法,它沒(méi)有覆蓋Object#equals. 為了證明這一點(diǎn),下面的注釋將無(wú)法編譯@Override:
@Override
public boolean equals(Traffic t) {
return this.attacker.equals(t.getAttacker()) &&
this.victim.equals(t.getVictim()) &&
this.date == t.getDate();
}
HashMap使用的實(shí)現(xiàn)Object#equals而不是您的自定義實(shí)現(xiàn)。您的equals方法應(yīng)該接受 anObject作為參數(shù):
@Override
public boolean equals(Object o) {
if (!(o instanceof Traffic)) {
return false;
}
Traffic t = (Traffic) o;
return Objects.equals(attacker, t.attacker) &&
Objects.equals(victim, t.victim) &&
date == t.date;
}
添加回答
舉報(bào)