好了,所以我试图找到一个数组的最大元素,我意识到这是不是这样做的最佳方法,它只能在某些情况下。想知道关于如何改变我的代码,以便它适用于所有的情况下,一些指针。
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;
}
我建议你做它像这样,
与max = a[0];
开始,然后从j
1
到a.length
循环。比较a[j]
到max
,即如果a[j] > max
然后设置max = a[j];
。
使用此方法。
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;
}
这是非常快速和简洁。
您需要将当前元素与最大元素进行比较,而不是与下一个。
if (a[j] > max) {
max = a[j];
}
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};
整数maxArray最大=(a)的
的System.out.println(最大值);
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;
}
在Java 8可以使用流:
public static int maxArray(int[] a) {
return Arrays.stream(a).max().getAsInt();
}