Wie vergleiche ich Mindestwerte in einer Liste? Java
Denis Tscheremnych
Wie vergleiche ich Mindestwerte in einer Liste? Java
java.util.Arrays importieren; öffentliche Klasse Main { public static void main(String [] args) { int [] ints = {12,6,8,242}; int[] ints1 = {5,1,5432,5,76,146,8}; if (Arrays.stream(ints).min() > Arrays.stream(ints1).min()){ System.out.println(Arrays.stream(ints).min()); } } } Gibt einen Fehler aus Operator '>' kann nicht auf 'java.util.OptionalInt', 'java.util.OptionalInt' angewendet werden Was mache ich falsch?
Antworten:
grüner Stier
Weil die min-Funktion eine optionale, keine Zahl zurückgibt. Optionale können nicht verglichen werden, sie müssen sicher entpackt werden (berücksichtigen Sie, dass es null geben kann), wenn das übergebene Array leer ist. Der einfachste Weg ist, .orElseThrow() nach jedem min() hinzuzufügen, dann wird, wenn das Array leer ist, eine RuntimeException geworfen, und wenn es nicht leer ist, wird der Wert zurückgegeben