查找数组中的最高编号

时间:2018-10-18 23:45:29

标签: java arrays

我写了一个简单的代码来返回数组中的最大数字,我尝试使用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;
}

我在这里想念什么吗?谢谢

2 个答案:

答案 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 
   }