example collection java performance collections foreach

collection - java foreach consumer action



java: ¿cuántas veces se evalúa la expresión de colección en un "foreach" (2)

Si hago esto en Java:

for(String s : myCollection.expensiveListGeneration()) { doSomething(); }

¿CaroListGeneration () se invoca solo una vez al principio o en cada ciclo de iteración?

¿Depende la implementación?


Se invoca una vez, y no depende de la implementación. El bucle for-each se basa en la interfaz de Iterable . Todo lo que hace es llamar al método iterator() la colección una vez al principio, y luego funciona con ese iterador.


porque es equivalente a usar un iterador, es equivalente a llamar a las colecciones ''. Método iterador (), y se llama una vez.