2009-12-01 3 views
-1

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

+0

Это домашнее задание? – Bozho

+3

Вот учебник по Java: http://java.sun.com/docs/books/tutorial/java/index.html. Вот учебник массива: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html. – BalusC

ответ

2

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

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

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

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