Une solution avec reduce()
:
int[] array = {23, 3, 56, 97, 42};
Arrays.stream(array).reduce((x, y) -> x > y ? x : y).ifPresent(System.out::println);
int res = Arrays.stream(array).reduce((x, y) -> x > y ? x : y).getAsInt();
System.out.println(res);
>>
97
97
Dans le code ci-dessus, reduce()
renvoie les données au Optional
format, que vous pouvez convertir int
en getAsInt()
.
Si nous voulons comparer la valeur maximale avec un certain nombre, nous pouvons définir une valeur de départ dans reduce()
:
int[] array = {23, 3, 56, 97, 42};
int max = Arrays.stream(array).reduce(100, (x, y) -> x > y ? x : y);
System.out.println(max);
>>
100
Dans le code ci-dessus, lorsqu'il a reduce()
une identité (valeur de départ) comme premier paramètre, il renvoie des données dans le même format avec l'identité. Avec cette propriété, nous pouvons appliquer cette solution à d'autres tableaux:
double[] array = {23.1, 3, 56.6, 97, 42};
double max = Arrays.stream(array).reduce(array[0], (x, y) -> x > y ? x : y);
System.out.println(max);
>>
97.0
Collections.max(Arrays.asList())
.