需要重写hashCode()
和equals()
方法才能实现自定义键在HashMap
中的查找。
class Pos {
public int i, j;
public Pos(int row, int col) {
i = row;
j = col;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Pos)) {
return false;
}
Pos p = (Pos) o;
return p.i == i && p.j == j;
}
@Override
public int hashCode() {
int result = 17;
result = 31 * result + i;
result = 31 * result + j;
return result;
}
}