2015-05-06 46 views
0

我已經完成了我所有的代碼,並且我不能爲我的生活弄清楚爲什麼當我運行這個時,max元素是5而不是6.任何幫助都會被感激地接受。使用泛型的2維數組中的最大元素

public class MaxElement2DimArray 
{ 
    public static void main(String[] args) 
    { 
     Integer[][] numbers = { {1, 2, 3}, {4, 5, 6} }; 
     System.out.println("Max element in array is: " +max(numbers)); 
    } 

    public static<E extends Comparable<E>> E max(E[] [] list) 
    { 
     E max = list[0][0]; 
     for (int i=1; i<list.length; i++) 
     { 
      for (int j=1; j<list.length; j++) 
      { 
       if (max.compareTo(list[i][j]) < 0) 
       { 
        max = list[i][j]; 
       } 
      } 
     } 
     return max; 
    } 
} 
+0

你的情況不應該是'counter <= list.length'嗎? – DigitalDouble

回答

0

您的內循環僅迭代兩次,因爲它引用了外列表的長度。它應引用內部列表的長度

for (int j=0; j<list[i].length; j++){ 
    ... 
} 

而且,你從1開始的索引,這樣你就可以跳過整個第一內陣列,每個陣列等的第一個元素。

+0

是的,就是這樣。謝謝,不知道爲什麼我沒有看到。 – Jordan

相關問題