Eine Lösung mit reduce()
:
int[] array = {23, 3, 56, 97, 42};
// directly print out
Arrays.stream(array).reduce((x, y) -> x > y ? x : y).ifPresent(System.out::println);
// get the result as an int
int res = Arrays.stream(array).reduce((x, y) -> x > y ? x : y).getAsInt();
System.out.println(res);
>>
97
97
In dem obigen Code, reduce()
liefert Daten in Optional
Format, das Sie konvertieren können int
durchgetAsInt()
.
Wenn wir den Maximalwert mit einer bestimmten Zahl vergleichen möchten, können wir einen Startwert festlegen in reduce()
:
int[] array = {23, 3, 56, 97, 42};
// e.g., compare with 100
int max = Arrays.stream(array).reduce(100, (x, y) -> x > y ? x : y);
System.out.println(max);
>>
100
Wenn im obigen Code reduce()
eine Identität (Startwert) als erster Parameter verwendet wird, werden Daten im gleichen Format wie die Identität zurückgegeben. Mit dieser Eigenschaft können wir diese Lösung auf andere Arrays anwenden:
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())
.