2016-04-04 8 views
-3

2D配列の行にすべて同じ要素が含まれているかどうかを確認するループを作成するのに問題があります。例:Java - 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]] 

ありがとうございます。

+0

必須の回答はhttp://stackoverflow.com/questions/33530721/how-to-check-in-2d-array-if-all-elements-in-row-and-column-are-the-sameです。 ?rq = 1。 – KevinO

+1

あなたは1つの1次元配列だけを扱わなければならない場合、そのようなループを書く方法を知っていますか? –

+1

これは、2D配列の使い方についての質問ですね*。 2Dアレイで作業するために勉強したことがあれば、確かにチェックする方法を知っておく必要があります。 2D配列が何であるかは分かりません。 – Gendarme

答えて

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を返すことを確認した後でチェックされます。

説明が必要な場合はお知らせください。

関連する問題