Нахождение наибольшего положительного значения int в массиве с помощью рекурсии

Я решил рекурсивно реализовать очень простую программу, чтобы увидеть, насколько хорошо Java обрабатывает рекурсию *, и немного не подошел. Вот что я в итоге написал:

public class largestInIntArray {
  public static void main(String[] args)
  {
    // These three lines just set up an array of ints:
    int[] ints = new int[100];
    java.util.Random r = new java.util.Random();
    for(int i = 0; i < 100; i++) ints[i] = r.nextInt();

    System.out.print("Normal:"+normal(ints,-1)+" Recursive:"+recursive(ints,-1));
  }

  private static int normal(int[] input, int largest) {
    for(int i : input)
      if(i > largest) largest = i;

    return largest;
  }

  private static int recursive(int[] ints, int largest) {
    if(ints.length == 1)
      return ints[0] > largest ? ints[0] : largest;

    int[] newints = new int[ints.length - 1];
    System.arraycopy(ints, 1, newints, 0, ints.length - 1); 

    return recursive(newints, ints[0] > largest ? ints[0] : largest);
  }
}

И это прекрасно работает, но, как это немного некрасиво, я подумал, есть ли лучший способ. Если у кого-то есть какие-либо мысли / альтернативы / синтаксический сахар, которыми можно поделиться, это будет высоко ценится!

Постскриптум Если вы говорите «используйте Лисп», вы ничего не выиграете (кроме уважения). Я хочу знать, если это можно сделать, чтобы хорошо выглядеть вЯва.

* и как хорошоI обрабатывать рекурсию

Ответы на вопрос(1)

Ваш ответ на вопрос