/ 我正在尝试使用instanceof为2d数组编写一个equals方法(board是一个Chess字段,它包含一个2d数组的Piece)。我想我已经掌握了大部分内容,但我一直试图写下最后一部分。因为它是一个equals方法,所以我希望Object obj的板在它等于当前对象板时返回true,否则返回false /
public boolean equals(Object obj) {
if (obj == this)
return true;
else
if (!(obj instanceof Chess))
return false;
else {
Chess ch= (Chess) obj;
for (int col=0; col<8; col++)
for (int row=0; row<8; row++)
//stuck here
}
}
答案 0 :(得分:0)
由于路径的原因,这些比较通常会让人感到困惑。我不确定你的棋盘或棋子是什么,所以我会给你基本的逻辑。如果在没有片段的单元格中有空格,则可以在for循环中编写其他逻辑,但最终,一旦完成两个for循环的遍历,就可以假设它们是相等的。
else {
Chess ch= (Chess) obj;
for (int col=0; col<8; col++) {
for (int row=0; row<8; row++) {
if this.board[col][row].equals(ch.board[col][row]) {
return false; //if any piece doesn't match, it's not equal, we can stop
}
}
}
// we iterated through everything, and didn't find anything mismatched
//might as well say they're equal
return true;
}