2016-08-22 3 views
0

配列の出力を表示した後、2D arrayの最大数を決定する方法としてGenericメソッドを呼び出す方法が失われています。 助けてください2D配列の最大数を見つけるための一般的なメソッドを呼び出す

**//Generic method for finding max number** 
    class Generic { 
    public static <E extends Comparable<E>> E Max(E[][]list) { 
     E max = list[0][0]; 
     for (E[] row : list) { 
      for (E elt : row) { 
       if (elt.compareTo(max) > 0) { 
        max = elt; 
       } 
      } 
     } 
     return max; 
    } 
} 
    public class GenericTester { 
    public static void main(String[] args) 
    { 
//creates the grid 
    final int row = 9; 
    final int col = 9; 
    int [][] grid = new int [row][col]; 


//fills the grid 
    for (int i = 0; i < grid.length; i++) { 
    for (int j = 0; j < grid[i].length; j++) { 
     grid[i][j] = (int)(Math.random()*50); 
    } 
} 
//displays the array output 
    System.out.println("Array : "); 

    for(int i=0;i<grid.length; i++) 
    { 
     for(int j=0; j<grid[i].length; j++) 
     System.out.print(grid[i][j]+" "); 
     System.out.println(); 
    }; 

ありがとうございます。

+0

あなたのコードを確認して、完全な形式を教えてください。 –

+0

ジェネリックスはプリミティブではうまく動作しません。 'grid'を' int [] [] 'から' Integer [] [] 'に変更すると、期待どおりに動作します。変更後の – aioobe

+0

最大番号 –

答えて

0

最初に述べたように、aiobee intは整数クラスに変換する必要があります。次に関数の呼び出しで修正後のコードを示します。

//**//Generic method for finding max number** 
class Generic { 
public static <E extends Comparable<E>> E Max(E[][]list) { 
    E max = list[0][0]; 
    for (E[] row : list) { 
     for (E elt : row) { 
      if (elt.compareTo(max) > 0) { 
       max = elt; 
      } 
     } 
    } 
    return max; 
    } 
} 
public class GenericTester { 
    public static void main(String[] args) 
    { 
    //creates the grid 
    final int row = 9; 
    final int col = 9; 
    Integer [][] grid = new Integer [row][col]; 


    //fills the grid 
    for (int i = 0; i < grid.length; i++) { 
     for (int j = 0; j < grid[i].length; j++) { 
     grid[i][j] = Integer.valueOf((int)(Math.random()*50)); 
     } 
    } 
    //displays the array output 
System.out.println("Array : "); 

    for(int i=0;i<grid.length; i++) 
    { 
    for(int j=0; j<grid[i].length; j++) 
    System.out.print(grid[i][j]+" "); 
    System.out.println(); 
} 

Integer max_val = Generic.<Integer>Max(grid); 
System.out.println(max_val); 
} 
} 
+0

はGenericです。 最大(グリッド)は必要ですか? –

+1

@ValentinRuano、そうではありません。 – aioobe

関連する問題