méthodes dans le foreach et pour les boucles en java

Ma question est au sujet de l'optimisation en java en utilisant l'Android compilateur. Sera carte.les valeurs de() dans la suite être appelée à chaque itération, ou le Android compilateur d'optimiser ça.

LinkedHashMap<String, Object> map;

for (Object object : map.values())
{
   //do something with object
}

De même, ici, est un autre exemple. va accédez à la liste.size() sera appelée à chaque itération?

List<Object> aList;

for (int i = 0; i < aList.size(); i++)
{
    object = aList.get(i);
    //do something with i
}

Et après tout cela, faut-il vraiment d'importance si elle appelle les méthodes à chaque itération? Ne Carte.les valeurs de(), et de la Liste.size() faire beaucoup de chose?

  • C'est une Java question qui n'a rien à voir avec Android en particulier.
  • Je comprends l'intérêt de cette question, mais pour tout le monde réel but, j'avais suggèrent fortement de code de profil avant de l'optimisation de ce dernier.
  • Il est parfaitement logique de se demander si un style de codage est inhérente au rendement avantage sur l'autre. Aussi, le profilage a ses limites. Si vous codez pour Android, votre code est susceptible de fonctionner sur une grande variété de plates-formes, dont certaines peuvent avoir un compilateur JIT, certains de ce qui ne va pas, et certains qui n'existent même pas encore.
  • Je suis d'accord. Je veux juste mettre en garde les gens de ne pas prématurément d'optimiser, ce qui est pire que de perdre un cycle ici ou là.