Effizienzunterschied zwischen verschiedenen Arten, Min und Max in einer Java -Liste zu finden
Posted: 05 Sep 2025, 00:49
Ich habe ähnliche Fragen wie dieses ähnliche gefunden, aber ich habe keine gefunden, die diese genaue Frage beantwortet. Ich habe eine Liste von Zahlen und möchte durch sie iterieren, um die minimalen und maximalen Werte zu finden. Ich frage mich, ob es einen Leistungsunterschied zwischen der Verwendung von if /geben würde Anweisungen und Math.min /.
Ich könnte dann verwenden, wenn / wie das:
or Math.max & Math.min wie das:
for (int currentNum : list) {
min = Math.min(min, currentNum);
max = Math.max(max, currentNum);
}
< /code>
Ich mag den zweiten, weil es sich ausdrucksvoller anfühlt (und es ist kürzer). Aber man könnte denken, dass es langsamer sein könnte, weil es jedes Mal eine variable Zuordnung durchführt, auch wenn es auf denselben Wert eingestellt wird. Andererseits wurde mir gesagt, dass der JIT -Compiler des JVM sehr klug ist und dies vielleicht optimieren kann.
Könnte es also einen Leistungsunterschied?>
Code: Select all
else
Code: Select all
Math.max
Code: Select all
List list = null;
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
Code: Select all
else
Code: Select all
for (int currentNum : list) {
if (currentNum < min) {
min = currentNum;
}
if (currentNum > max) {
max = currentNum;
}
}
for (int currentNum : list) {
min = Math.min(min, currentNum);
max = Math.max(max, currentNum);
}
< /code>
Ich mag den zweiten, weil es sich ausdrucksvoller anfühlt (und es ist kürzer). Aber man könnte denken, dass es langsamer sein könnte, weil es jedes Mal eine variable Zuordnung durchführt, auch wenn es auf denselben Wert eingestellt wird. Andererseits wurde mir gesagt, dass der JIT -Compiler des JVM sehr klug ist und dies vielleicht optimieren kann.
Könnte es also einen Leistungsunterschied?>