Autor Tema: Tipo Iterator Java cómo funciona concepto métodos principales next has CU00667B  (Leído 1115 veces)

carlacinquemani

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Buenas tardes. Mi consulta está sobre el ejemplo que hay en la lección CU00667B del curso gratuito de Java de aprenderaprogramar. A continuación inserto el código y luego expongo la inquietud.

Código: [Seleccionar]
import java.util.Iterator;
import java.util.ArrayList;
   
      public class TestUsoIterator { //Ejemplo uso iterator aprenderaprogramar.com

           public static void main (String [ ] Args) {
                 
                  ArrayList <String> listaDeNombres = new ArrayList <String> ();
                  listaDeNombres.add("Juan Pérez Sánchez");
                  listaDeNombres.add("José Alberto Reverón Montes");
                  String cadenaBuscar = "Alberto";

                  System.out.println ("La cadena que buscamos es " + cadenaBuscar);
                  Iterator<String> it = listaDeNombres.iterator(); //Creamos el objeto it de tipo  Iterator con String
                 
                 String tmpAnalizando;

                 while ( it.hasNext() ) { //Utilizamos el método hasNext de los objetos tipo Iterator
                 tmpAnalizando = it.next(); //Utilizamos el método next de los objetos tipo Iterator
                System.out.println ("Analizando elemento... " + tmpAnalizando);

                if (tmpAnalizando.contains(cadenaBuscar) ) {

                     System.out.println ("Cadena encontrada!!!");
                 
                } else { } //else vacío. No hay acciones a ejecutar.

} //Cierre del while

} //Cierre del main

} //Cierre de la clase

Cuando compilamos esto, así tal cual, encuentra la cadenaBuscar en la segunda cadena del Array. Ahora, he probado cambiar cadenaBuscar por una que se encuentre en el primer elemento del Array y también la encuentra. Mi duda surge aquí sobre cómo funciona el next, es decir, si siempre está referenciando al siguiente objeto, cuál es la parte del código que hace que referencie al primero, o cómo hace el programa para analizar el primer elemento.

Desde ya muchas gracias.

Saludos
« Última modificación: 09 de Agosto 2018, 22:40 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2051
    • Ver Perfil
Hola, para tratar de responder veamos lo que dice el api de Java sobre los métodos de los objetos de tipo Iterator:

boolean    hasNext()     Returns true if the iteration has more elements.
E              next()                Returns the next element in the iteration.

El método hasNext() devuelve true si hay algún elemento de la colección que aún no se ha recorrido. El método next() devuelve el siguiente elemento dentro de la colección, entiendo que en el orden por defecto que esté establecido para esa colección. En un caso como este el orden viene dado por la posición del elemento dentro del ArrayList, por tanto next() nos devolverá en la primera petición el elemento 0, en la segunda petición el elemento 1 y así sucesivamente hasta devolvernos el último elemento de la colección. Una vez esto ocurre, hasNext() devuelve false porque ya no quedan más elementos por recorrer.

Lo que hacemos con este código es recorrer todos los elementos dentro del ArrayList de uno en uno, y comprobar si alguno contiene la cadena buscada.

Si ponemos como cadena a buscar J el resultado que obtenemos es:

La cadena que buscamos es J
Analizando elemento... Juan Pérez Sánchez
Cadena encontrada!!!
Analizando elemento... José Alberto Reverón Montes
Cadena encontrada!!!



Es decir, recorre cada uno de los elementos y encuentra la cadena dos veces, porque está en los dos elementos (tanto en Juan Pérez Sánchez como en José Alberto Reverón Montes)

Nota: una letra como J puede tratarse como un carácter o como una cadena de una sola letra. En este caso la hemos tratado como una cadena de una sola letra.

Espero que haya aclarado algo

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".