使用泛型的二维数组中的Max元素

时间:2015-05-06 01:56:42

标签: java sorting generics multidimensional-array comparable

我已经完成了所有代码,但我不能为我的生活找出为什么当我运行它时,max元素是5而不是6.感谢任何帮助。

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

1 个答案:

答案 0 :(得分:0)

你的内部for循环只迭代两次,因为它引用了外部列表的长度。它应该引用内部列表的长度

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

此外,您将索引设置为1,因此您将跳过整个第一个内部数组,以及每个其他数组的第一个元素。