如何在java中使用equals方法使用instanceof for 2d数组?

时间:2014-10-01 13:31:38

标签: equals multidimensional-array instanceof

/ 我正在尝试使用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

            }
    }

1 个答案:

答案 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;
        }