Тестирование на равенство в двумерном массиве в Java - PullRequest
0 голосов
/ 01 декабря 2009

Как мне найти все подходящие элементы в двумерном массиве в Java?

1 Ответ

2 голосов
/ 01 декабря 2009

Обычно вы просто перебираете строки и столбцы, проверяете, равно ли содержимое адресуемой ячейки (!) В обеих матрицах, и сохраняете результат в другой матрице, которая является результатом вашей операции.

Не забудьте реализовать обязательные проверки для матриц, в противном случае алгоритм обязательно потерпит крах, если вы предоставите «недопустимые аргументы».

Варианты: если вам нужны java-примитивы (int или float), измените тип массивов и не используйте для сравнения equals, кроме оператора ==.

private boolean[][] findMatches(Object[][] array1, Object[][] array2) {
  if (notComparable(array1, array2) {
   return null;
  }

  boolean[][] result = new boolean[array1.length, array1[0].length];
  for (int row = 0; row < array1.length; row++) {
    for (int column = 0; column < array1.length; column++) {
      if (array1[row][column].equals(array2[row][column]) {
        result[row][column] = true;
      }
    }
  }
  return result;

}

private boolean notComparable(Object[][] array1, Object[][] array2) {

  // dummy implementation - add your checks here to guarantee
  // that the arrays are not null, not empty and of same size in each row

  return false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...