好的,所以我试图找到数组中最大的元素,我发现这不是最好的方法,它只适用于某些情况。希望了解如何更改我的代码,以便它适用于所有实例。
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;
}
答案 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();
}