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