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 /
.
Code: Select all
List list = null;
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
Ich könnte dann verwenden, wenn /
wie das:
Code: Select all
for (int currentNum : list) {
if (currentNum < min) {
min = currentNum;
}
if (currentNum > max) {
max = currentNum;
}
}
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?>
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[code]else[/code] Anweisungen und Math.min /[code]Math.max[/code].[code]List list = null;
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
[/code]
Ich könnte dann verwenden, wenn /[code]else[/code] wie das:
[code]for (int currentNum : list) {
if (currentNum < min) {
min = currentNum;
}
if (currentNum > max) {
max = currentNum;
}
}
[/code]
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?>