怎么优化这个java的速度啊

import java.util.*;

public class Main {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int index = scanner.nextInt();

    int a[] = new int[index];

    Scanner scanner2 = new Scanner(System.in);
    for (int i = 0; i < a.length; i++) {
        a[i] = scanner2.nextInt();
    }

    int max = findMaxByStream(a);
    System.out.println(max);
}

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

}

每次输入后就用新值和原有的最大值比对一下,就不需要在输入完成后再比对整个数组了

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int index = scanner.nextInt();
    int max = Integer.MIN_VALUE;
 
    int a[] = new int[index];
 
    Scanner scanner2 = new Scanner(System.in);
    for (int i = 0; i < a.length; i++) {
        a[i] = scanner2.nextInt();
        max = max > a[i] ? max : a[i];
    }
 
    System.out.println(max);
}
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int index = scanner.nextInt();
        Scanner scanner2 = new Scanner(System.in);
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < index; i++) {
            int num = scanner2.nextInt();
            if (max < num) {
                max = num;
            }
        }
        System.out.println(max);
    }

不用把所有结果都存到数组里再比较,可以拿下一个值和当前max比较 ,谁大就把谁赋值给max
如果能帮到你,望点下我的回答的【采纳】谢啦

你有用的代码一共就一句话,还想怎么优化呢
你时间都消耗在等待用户输入上面了,计算也根本不消耗什么时间啊

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int index = scanner.nextInt();
    Scanner scanner2 = new Scanner(System.in);
    int max = MIN_VALUE;
  int tmp;
    for (int i = 0; i < index; i++) {
        tmp = scanner2.nextInt();
    if(tmp > max) max = tmp
    }
    System.out.println(max);
}

如果是前面的输入太慢,那就通过文件输入,