List<string> list = ...;
int size = list.size();
for (int i = 0; i < size; i++) {
String str = list.get(i);
// ...
System.out.println(str);
}
Alternativamente se puede escribir utilizando un interator y un ciclo while:
List<string> list = ...;
Iterator<string> iterator = list.iterator();
while (iterator.hasNext()) {
String str = iterator.next();
// ...
System.out.println(str);
}
A partir de java 5 se puede escribir así utilizando un foreach:
List<string> list = ...;
for (String str : list) {
// ...
System.out.println(str);
}
Al de-compilar la versión con foreach (última) se observa que el compilador, en genera el mismo código que la versión iterator-while. Pero el iterador es un objeto de "usar y tirar", debido a su corta vida, por lo que básicamente es basura, por lo que hay que justificar muy bien su uso. El objetivo de utilizar un iterator, se da principalmente en ambiente multi-hilo, donde pueden ocurrir modificaciones, mientras se esta iterando la lista, pero si la iteración se da en un ambiente de un solo hilo, no es necesario crear el iterator y lo ideal es utilizar el for-size.
No hay comentarios.:
Publicar un comentario