Moje pytanie dotyczy optymalizacji w java przy użyciu kompilatora Androida. Czy funkcja map.values () będzie nazywać się w każdej iteracji, czy też optymalizuje ją kompilator systemu Android.metody w foreach i pętli w java
LinkedHashMap<String, Object> map;
for (Object object : map.values())
{
//do something with object
}
Podobnie tutaj jest inny przykład. czy aList.size() będzie nazywane każdą iteracją?
List<Object> aList;
for (int i = 0; i < aList.size(); i++)
{
object = aList.get(i);
//do something with i
}
Czy to wszystko ma znaczenie, jeśli wywołuje metody w każdej iteracji? Czy Map.values () i List.size() wykonują wiele operacji?
To jest pytanie Java, które naprawdę nie ma nic wspólnego z Androidem. –
Rozumiem zainteresowanie tym pytaniem, ale dla dowolnego celu w świecie rzeczywistym, zdecydowanie zaleciłbym profilowanie kodu przed jego optymalizacją. –
@PhilippReichart - Sensownie jest zapytać, czy jeden styl kodowania ma nieodłączną przewagę nad innymi. Ponadto profilowanie ma swoje ograniczenia. Jeśli kodujesz system Android, Twój kod prawdopodobnie będzie działał na wielu różnych platformach, z których niektóre mogą mieć kompilator JIT, z których niektóre nie będą, a niektóre z nich jeszcze nie istnieją. –