{"id":2273,"date":"2018-02-17T23:43:11","date_gmt":"2018-02-18T04:43:11","guid":{"rendered":"https:\/\/www.manualjava.net\/?p=2273"},"modified":"2018-02-20T15:57:03","modified_gmt":"2018-02-20T20:57:03","slug":"iteradores-de-una-coleccion","status":"publish","type":"post","link":"https:\/\/www.manualjava.net\/?p=2273","title":{"rendered":"Iteradores de una colecci\u00f3n"},"content":{"rendered":"<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-2275\" src=\"https:\/\/www.manualjava.net\/wp-content\/uploads\/2018\/02\/java34-300x123.jpg\" alt=\"\" width=\"272\" height=\"112\" srcset=\"https:\/\/www.manualjava.net\/wp-content\/uploads\/2018\/02\/java34-300x123.jpg 300w, https:\/\/www.manualjava.net\/wp-content\/uploads\/2018\/02\/java34.jpg 302w\" sizes=\"(max-width: 272px) 100vw, 272px\" \/><\/p>\n<p><span style=\"color: #000000;\">Un iterador permite acceder a cada elemento de una colecci\u00f3n sin necesidad de tener que conocer la estructura de esta. Hist\u00f3ricamente, Java 1.0 incorpora el iterador <strong>Enumeration<\/strong>, posteriormente Java 2 desarrolla dos nuevos iteradores:\u00a0<strong>Iterador y ListIterador<\/strong>.\u00a0<\/span><!--more--><\/p>\n<h2><span style=\"color: #000000;\"><strong>Enumeration<\/strong><\/span><\/h2>\n<p><span style=\"color: #000000;\">La interfaz Enumeration declara m\u00e9todos que recorren una colecci\u00f3n. Mediante este tipo de iterador se puede acceder a cada elemento de una colecci\u00f3n, pero no permite modificar la colecci\u00f3n, es de solo lectura. Enumeration forma parte del paquete java.util. Su declaraci\u00f3n es la siguiente:<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0public interface Enumeration{<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 boolean hasMoreElements();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Object nextElement();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0}<\/span><\/p>\n<p><span style=\"color: #000000;\">nextElement() devuelve el siguiente elemento. Levanta la excepci\u00f3n de tipo\u00a0<strong>NoSuchElementException\u00a0<\/strong>si no hay m\u00e1s elementos, es decir si ya se ha recorrido toda la colecci\u00f3n. La primera llamada devuelve el primer elemento.<\/span><\/p>\n<p><span style=\"color: #000000;\">hasMoreElements() devuelve true si no se ha accedido a todos los elementos de la colecci\u00f3n. Normalmente se dise\u00f1a un bucle, controlado por este m\u00e9todo, para acceder a cada elemento de la colecci\u00f3n.<\/span><\/p>\n<p><span style=\"color: #000000;\">Las colecciones hist\u00f3ricas:\u00a0<strong>Vector, Stack, Dictionary, HashTable\u00a0<\/strong>disponen del m\u00e9todo elements() que devuelve un Enumeration, a partir del cual se puede recorrer la colecci\u00f3n. La declaraci\u00f3n es la siguiente:<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0Enumeration elements()<\/span><\/p>\n<p><span style=\"color: #000000;\">El esquema que se sigue para acceder a cada elemento de una colecci\u00f3n consta de los siguientes pasos:<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 1.\u00a0 Declarar una variable Enumeration.<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Enumeration enumera;<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 2.\u00a0 Llamar al m\u00e9todo elements() de la colecci\u00f3n.<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0enumera = coleccion.elements()<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 3.\u00a0 Dise\u00f1ar el bucle que obtiene y procesa cada elemento.<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0while(enumera.hasMoreElements()){<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0elemento = (TipoElemento)enumera.nextElement();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;proceso de elemento&gt;<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0}<\/span><\/p>\n<h3><span style=\"color: #000000;\"><strong>Ejemplo<\/strong><\/span><\/h3>\n<p><span style=\"color: #000000;\">Se crea una pila de diferentes objetos, posteriormente, se recorre con un iterador Enumeration y con m\u00e9todos de Stack. La pila se llena de objetos String, Integer y Double, sin un orden establecido. Para recorrer la pila se crea un enumerador y un bucle hasta que no queden m\u00e1s elementos sin visitar. Tambi\u00e9n se recorre aplicando la operaci\u00f3n pop() y controlando que no est\u00e9 vac\u00eda.<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 import java.util.*;<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 public class EnumeradorPila {<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0public static void main(String[] args) {<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 final int N=8;<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Stack pila = new Stack();<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 String []palabra = <\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0{\u00abUrbion\u00bb, \u00abMagina\u00bb, \u00abAbantos\u00bb, \u00abPeralte\u00bb, \u00abCitores\u00bb};<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 for(int i=0;i&lt;N;i++){<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0int n;<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0n = (int)(Math.random()*N*2);<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0if(n&lt;palabra.length)<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 pila.push(palabra[n]);<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0else if(n&lt;N+2)<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 pila.push(new Double(Math.pow(n,2)));<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0else<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 pila.push(new Integer(n*3));<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ crea un enumerador de la pila <\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Enumeration enumera = pila.elements();<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ bucle para recorrer la pila<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 System.out.println(\u00abElementos de la pila\u00bb<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0+ \u00aben el orden establecido por el enumerador: \u00ab);<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 while(enumera.hasMoreElements()){<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Object q;<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 q = enumera.nextElement();<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 System.out.print(q + \u00bb \u00ab);<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ bucle para recorrer la pila<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 System.out.println(\u00ab\\nElementos de la pila en orden LIFO: \u00ab);<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 while(!pila.empty()){<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Object q;<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 q = pila.pop();<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 System.out.print(q + \u00bb \u00ab);<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0}<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0}<\/span><br \/>\n<span style=\"color: #000000;\"> \u00a0 \u00a0 \u00a0 }<\/span><\/p>\n<h2><span style=\"color: #000000;\"><strong>Iterator<\/strong><\/span><\/h2>\n<p><span style=\"color: #000000;\">Java 2 desarrolla nuevas colecciones y el iterador com\u00fan Iterator.\u00a0<span style=\"color: #000000;\">Todo objeto colecci\u00f3n se puede recorrer con este iterador. Todas las colecciones tienen el m\u00e9todo iterator() que devuelve un objeto Iterator.<\/span><\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0<\/span> \u00a0 \u00a0\u00a0<span style=\"color: #000000;\">Iterator iterador;<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 iterador = Coleccion.iterator();<\/span><\/p>\n<p><span style=\"color: #000000;\">La interfaz Iterator permite no solo acceder a los elementos, sino tambi\u00e9n eliminarlos. Pertenece al paquete java.util; la declaraci\u00f3n es la siguiente:<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0\u00a0 public interface Iterator{<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 boolean hasNext();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Object next();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 void remove();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0}<\/span><\/p>\n<p><span style=\"color: #000000;\">hasNext() devuelve true si quedan elementos no visitados, es el equivalente a hasMoreElements().<\/span><\/p>\n<p><span style=\"color: #000000;\">next() la primera llamada devuelve el primer elemento, seg\u00fan el orden establecido por el iterador.<\/span><\/p>\n<p><span style=\"color: #000000;\">remove() elimina de la colecci\u00f3n el elemento obtenido por la \u00faltima llamada a next(). Solo se puede llamar una vez despu\u00e9s de next(), en caso contrario, o bien si no ha habido una llamada previa a next(), levanta la excepci\u00f3n IllegalStateException. Normalmente las colecciones implementan este m\u00e9todo en un bloque sincronizado.<\/span><\/p>\n<h3><span style=\"color: #000000;\"><strong>Norma<\/strong><\/span><\/h3>\n<p><span style=\"color: #000000;\">Se recomienda utilizar Iterator en lugar de Enumeration usada en colecciones hist\u00f3ricas. Los m\u00e9todos de acceso son m\u00e1s sencillos de recordar y adem\u00e1s declara el m\u00e9todo remove().<\/span><\/p>\n<h3><strong><span style=\"color: #000000;\">Ejemplo<\/span><\/strong><\/h3>\n<p><span style=\"color: #000000;\">Dada una lista de puntos del plano se quiere eliminar de la lista aquellos cuya coordenada x est\u00e9 fuera del rango [2,12]. Se da por declarada la clase Punto con el m\u00e9todo int getX(), y que la lista de puntos ya est\u00e1 creada. La lista es del tipo ArrayList. El fragmento de c\u00f3digo escrito declara la lista y el iterador; realiza un bucle controlado por hasNext() para acceder a cada elemento y si la coordenada x no est\u00e1 en el rango [2,12] lo elimina llamando al m\u00e9todo remove().<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0class Punto(. . .)<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0List lista = new ArrayList();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0Iterator iterador;<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0\/\/ se llena la lista de objetos Punto<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0iterador = lista.iterator();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0while(iterador.hasNext()){<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Punto q;<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0q = (Punto)iterador.next();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0if(q.getX()&lt;2 || q.getX()&gt;12){<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0System.out.println(\u00abPunto: \u00bb +q+ \u00bb se elimina\u00bb);<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0iterador.remove();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0}<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0}<\/span><\/p>\n<p><span style=\"color: #000000;\">La colecci\u00f3n guarda elementos de cualquier tipo (Object), esto exige realizar una conversaci\u00f3n al tipo concreto (Punto) con el que se trabaja. Con Java 1.5 se puede parametrizar el tipo de los elementos, de tal forma que no es necesario realizar la conversi\u00f3n y, adem\u00e1s, el compilador verifica el tipo de los elementos a\u00f1adidos. A continuaci\u00f3n se escribe el c\u00f3digo con esta caracter\u00edstica.<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0List&lt;Punto&gt; lista = new ArrayList&lt;Punto&gt;();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0Iterator&lt;Punto&gt; iterador;<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0iterador = lista.iterator();<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0while(iterador.hasNext()){<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Punto q;<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0q = iterador.next();\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/ no es necesario un cast<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0. . .<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0}<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un iterador permite acceder a cada elemento de una colecci\u00f3n sin necesidad de tener que conocer la estructura de esta. Hist\u00f3ricamente, Java 1.0 incorpora el iterador Enumeration, posteriormente Java 2 desarrolla dos nuevos iteradores:\u00a0Iterador y ListIterador.\u00a0<\/p><p><a class=\"more-link btn\" href=\"https:\/\/www.manualjava.net\/?p=2273\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":2275,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"_links":{"self":[{"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/posts\/2273"}],"collection":[{"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2273"}],"version-history":[{"count":37,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/posts\/2273\/revisions"}],"predecessor-version":[{"id":2333,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/posts\/2273\/revisions\/2333"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/media\/2275"}],"wp:attachment":[{"href":"https:\/\/www.manualjava.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}