viernes, 18 de mayo de 2012

Iteradores (Recorrido de Contenedores)


Es un patrón de diseño utilizado para recorrer las colecciones. En java es una interfaz denominada Iterator. Esta formado por 3 métodos:

ü  boolean hasNext(): retorna true en caso de haber mas elementos y false en caso de llegar al final de iterator
ü  Object next(): retorna el siguiente elemento en la iteración
ü  void remove(): remueve el ultimo elemento devulto por la iteración

En las clases Vector, ArrayList, HashSet y TreeSet un iterador se consigue a través del método: Iterator iterator(). Se utiliza de la siguiente manera:


                List lasPersonas = new ArrayList();
                lasPersonas.add(“Juan”);
                lasPersonas.add(“Pepe”);
               
                Iterator it = lasPersonas.iterator();
               
                While(it.hasNext){
                String unaPersona = (String) it.next();
                }

En las clases HashMap y TreeMap se utiliza de la siguiente manera:

SortedMap sm=new TreeMap();
sm.put(3, "Intruccion");
sm.put(2, 5);

Iterator iterator = sm.entrySet().iterator();

while (iterator.hasNext()) {

Object claveValor = iterator.next();
System.out.println("Clave = Valor : "+claveValor;

}

4 comentarios:

  1. buen aporte, gracias. Pero como se lían estos de java para recorrer un simple array. Se hacen copia y montan películas espectaculares jajaja. Se que es para trabajar con una copia pero tela...

    ResponderEliminar
  2. UNA CONSULTA, EL ITERADOR CONSUME ES LINEAL O CONSTANTE

    ResponderEliminar
  3. metodo iterator() y listIterator() para que sirven?

    ResponderEliminar
    Respuestas
    1. amigo te dejo mas informacion en este link:

      https://www.google.com/search?safe=active&sxsrf=ACYBGNTYW7IJ-L12wZnHcqGhWUSOy_TCAg%3A1580340512467&source=hp&ei=IBUyXtqZGsLl_Qbnp7WoCg&q=metodo+iterator%28%29+y+listIterator%28%29+para+que+sirven%3F&oq=metodo+iterator%28%29+y+listIterator%28%29+para+que+sirven%3F&gs_l=psy-ab.3..33i160.590.590..974...1.0..0.209.209.2-1......0....2j1..gws-wiz.gm17Nirjko8&ved=0ahUKEwjaqfiW-6nnAhXCct8KHedTDaUQ4dUDCAY&uact=5

      Eliminar