Meine Frage bezieht sich auf die Optimierung in Java mit dem Android-Compiler. Will map.values () im Folgenden bei jeder Iteration aufgerufen werden, oder wird der Android-Compiler es optimieren.Methoden in foreach und für Schleifen in Java
LinkedHashMap<String, Object> map;
for (Object object : map.values())
{
//do something with object
}
Auch hier ist ein weiteres Beispiel. wird aList.size() jede Iteration aufgerufen?
List<Object> aList;
for (int i = 0; i < aList.size(); i++)
{
object = aList.get(i);
//do something with i
}
Und nach all dem, ist es wirklich wichtig, wenn es jeder Iteration die Methoden aufruft? Machen Map.values () und List.size() viel aus?
Dies ist eine Java-Frage, die wirklich nichts mit Android zu tun hat. –
Ich verstehe das Interesse an dieser Frage, aber für jeden realen Zweck, würde ich stark vorschlagen, Code vor der Optimierung zu profilieren. –
@PhilippReichart - Es macht durchaus Sinn zu fragen, ob ein Kodierungsstil einen inhärenten Leistungsvorteil gegenüber einem anderen hat. Auch das Profiling hat seine Grenzen. Wenn Sie für Android codieren, wird Ihr Code wahrscheinlich auf einer Vielzahl von Plattformen ausgeführt, von denen einige einen JIT-Compiler haben können, von denen einige nicht und einige sogar noch nicht existieren. –