2009-12-01 28 views
-1

如何在Java中找到二維數組中的所有匹配元素?在Java中的二維數組中測試相等性

+0

這是一個家庭作業? – Bozho 2009-12-01 15:20:54

+3

這是一個Java教程:http://java.sun.com/docs/books/tutorial/java/index.html。這是一個數組教程:http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html。 – BalusC 2009-12-01 15:22:14

回答

2

基本上,您只需遍歷行和列,檢查所尋址單元格的內容在兩個矩陣中是否相等(!),並將結果存儲到另一個矩陣中,這是您的操作結果。

不要忘記對矩陣進行強制檢查,否則算法會在發生「非法參數」的情況下發生崩潰。變化:如果您需要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; 
}