(Una pregunta para los que conocen bien la compilación y optimización trucos JVM ... :-)eficiencia bucle de Java ("para" frente a "foreach")
¿Hay alguna de la "para" y " foreach "patrones claramente superiores a los demás?
Considere los dos ejemplos siguientes:
public void forLoop(String[] text)
{
if (text != null)
{
for (int i=0; i<text.length; i++)
{
// Do something with text[i]
}
}
}
public void foreachLoop(String[] text)
{
if (text != null)
{
for (String s : text)
{
// Do something with s, exactly as with text[i]
}
}
}
Es forLoop
más rápido o más lento que foreachLoop
?
Suponiendo que en ambos casos la matriz text
no necesitara ningún control de cordura, ¿hay un ganador claro o aún demasiado cerca para hacer una llamada?
EDITAR: Como se señala en algunas de las respuestas, el rendimiento debe ser idéntico para las matrices, mientras que el patrón "foreach" podría ser ligeramente mejor para los tipos de datos abstractos como una lista. Ver también this answer que discute el tema.
La respuesta 256859 cubre mi pregunta, pero de alguna manera no apareció en las búsquedas que hice. ¡Gracias a todos! – PNS