我写了一个简单的代码来返回数组中的最大数字,我尝试使用String数组,它可以正常工作,但是现在我尝试使用int数组,它只返回-1作为默认值
private static int highestNum(int[] arr) {
int high = arr[0];
for (int i = 0; i < arr.length-1; i++) {
if (arr[i] > high) {
high = arr[i];
}
}
System.out.println(high);
return high;
}
我在这里想念什么吗?谢谢
答案 0 :(得分:2)
仅当数组中的下一个元素大于high
循环中数组的当前值时,for
的值才会更新。
那么,要么:
if (arr[i] > high) {
high = arr[i];
}
或者,我想更清楚
for (int i = 0; i < arr.length; ++i) {
high = Math.max(high, arr[i]);
}
当当前元素的值大于先前找到的最大值时,您要更新high
。
答案 1 :(得分:1)
从数组获取最高数字的Java 8实现。
private static int highestNum(int[] arr) {
OptionalInt max = IntStream.of(arr == null ? new int[] {}: arr).max();
return (max.isPresent() ? max.getAsInt() : -1 ); // -1 assuming default
}