如何在java中使用equals方法,使用instanceof来处理2d数组



/我正试图使用instanceof为2d数组编写一个equals方法(棋盘是一个容纳Piece的2d数组的国际象棋场)。我想我得到了大部分,但我一直在努力写最后一部分。由于它是一个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
            }
    }

由于路径的原因,类似这样的比较通常会有些混乱。我不确定你的棋盘或棋子是什么,所以我会给你基本的逻辑。如果在没有分段的单元格中有空空间,则可以在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;
        }

最新更新