Java中数组的Max元素

时间:2014-03-10 23:20:21

标签: java arrays max

好的,所以我试图找到数组中最大的元素,我发现这不是最好的方法,它只适用于某些情况。希望了解如何更改我的代码,以便它适用于所有实例。

public static int maxArray(int[] a) {
    int max = 0;
    for (int j = 0; j < a.length-1; j++) {
        if (a[j+1] > a[j]) {
            max = a[j+1];
        } else {
            max = a[j];
        }

    }
    return max;

}

6 个答案:

答案 0 :(得分:2)

我建议你这样做,

max = a[0];开始,然后从j 1循环到a.length。 将a[j]max进行比较,即a[j] > max,然后设置max = a[j];

答案 1 :(得分:2)

使用此方法。

public static int maxArray(int[] a) {

int max = a[0]; // saves a bit of time

for (int j = 1; j < a.length; j++) {
    if (a[j] > max) {
        max = a[j];
    }

}
return max;

}

这是非常迅速和简洁的。

答案 2 :(得分:1)

您需要将当前元素与最大元素进行比较,而不是与下一元素进行比较。

if (a[j] > max) {
    max = a[j];
}

答案 3 :(得分:0)

public static <T extends Object & Comparable<? super T>> T maxArray(T[] array) {
    return Collections.max(Arrays.asList(array));
}

调用函数后,例如:

  

整数[] a = {1,5,-6,3,0,2};

     

整数max = maxArray(a);

     

的System.out.println(最大);

答案 4 :(得分:0)

public static int getMaxElement(int[] elements) {
    int max = elements[0];
    for (int j = 0; j < elements.length-1; j++) {
        if (elements[j] > max) {
            max = elements[j];
        }
    }
    return max;
}

答案 5 :(得分:0)

在Java 8中,您可以使用Stream:

public static int maxArray(int[] a) {
    return Arrays.stream(a).max().getAsInt();
}