Java - 如何检查2D数组中的所有行是否包含相同的元素?

时间:2016-04-04 01:46:53

标签: java arrays multidimensional-array

我在编写循环时遇到问题,该循环检查2D数组的行是否都包含相同的元素。例如:

// This would be a "solved" case.
[[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5]]

// This would also be a "solved" case.
[[1, 1, 1, 1], [0, 0, 0, 0], [4, 4, 4, 4], [3, 3, 3, 3], [2, 2, 2, 2], [5, 5, 5, 5]]

// This would not be
[[0, 5, 0, 5], [1, 0, 1, 0], [2, 2, 2, 2], [3, 3, 3, 3], [1, 4, 1, 4], [5, 4, 5, 4]]

提前致谢。

1 个答案:

答案 0 :(得分:0)

考虑:

public boolean checkArray(int[][] Array){
    int outerCount, innerCount; 
    for(outerCount = 0; outerCount < Array.length; outerCount++)
        for(innerCount = 1; innerCount < Array[outerCount].length; innerCount++)
            if(Array[outerCount][0] != Array[outerCount][innerCount]){
                return false;
            }
        }
    }
    return true;
}

通过使用第一个元素检查子数组中的每个元素,您可以确定数组是否符合您的条件。

所以在你未解决的情况下,数组首先会检查0 == 5,这当然不是真的,会返回false。在已解决的情况下,您的第一个元素将等于子数组中的每个其他元素,并且在检查后每个子数组都将返回true。

如果您需要任何澄清,请告诉我们!