Autor Tema: Solucion Ejercicio CU00678B - Concepto definición de polimorfismo en Java  (Leído 3894 veces)

jotase1507

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 38
    • Ver Perfil
Buenas tardes, envio mi codigo para su revision :)

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class Prueba {
    public static void main (String [] args) {
        HashSet<String> listaDeString = new HashSet<String>();
        listaDeString.add("sol");
        listaDeString.add("luna");
        listaDeString.add("saturno");
        TreeSet<Integer> listaDeIntegers = new TreeSet<Integer>();
        listaDeIntegers.add(2);
        listaDeIntegers.add(8);
        listaDeIntegers.add(5);
        ArrayList<Set> listaDeSet = new ArrayList<Set>();
        listaDeSet.add(listaDeString);
        listaDeSet.add(listaDeIntegers);
        for (Iterator<Set> it = listaDeSet.iterator(); it.hasNext();) {
            Set tmpSet = it.next();
            System.out.print(tmpSet);
        }
    }
}

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Hola jotase

Tu clase hace el trabajo en parte.
Muestras los dos elementos del ArrayList, pero en el enunciado se pide:
Citar
e) Usa iteradores para recorrer los elementos del ArrayList y recorrer el contenido de cada uno de los elementos y mostrar este contenido por pantalla. Por pantalla deberás obtener “sol”, “luna”, “saturno”, 8, 5, 2.

Has de mostrar individualmente los componentes de cada uno de los elementos del ArrayList.
Piensa que has de hacer operaciones con los números y tienes que extraerlos de la lista.

Cuando tengas cada uno de los elementos del ArrayList tienes que usar otro iterador para recorrer sus elementos y mostrarlos

Saludos

jotase1507

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 38
    • Ver Perfil
Hice algunos cambios en mi codigo, de no ser correcto, agradecere la respectiva correccion.

Saludos.

Código: [Seleccionar]
//Ejercicio 78
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class Prueba {
    public static void main (String [] args) {
        HashSet<String> listaDeString = new HashSet<String>();
        listaDeString.add("sol");
        listaDeString.add("luna");
        listaDeString.add("saturno");
        TreeSet<Integer> listaDeIntegers = new TreeSet<Integer>();
        listaDeIntegers.add(2);
        listaDeIntegers.add(5);
        listaDeIntegers.add(8);
        ArrayList<Set> listaDeSet = new ArrayList<Set>();
        listaDeSet.add(listaDeString);
        listaDeSet.add(listaDeIntegers);
        for (Iterator<String> it = listaDeString.iterator(); it.hasNext();) {
            String tmpString = it.next();
            System.out.print("\""+tmpString+"\", ");
        }
        for (Iterator<Integer> it = listaDeIntegers.iterator(); it.hasNext();) {
            Integer tmpInteger = it.next();
            System.out.print(tmpInteger+", ");
        }
        System.out.println("\b\b.");
    }
}

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Hola jotase

Si, has hecho lo que te pedía, mostrar todos los elementos uno a uno. Si, pero no era así como lo pedía.
Para mostrar los elementos usas los objetos (listaDeString y listaDeIntegers) dejando de lado el objeto (listaDeSet) que es de donde hay que sacarlos.

A continuación tienes tu clase con pequeños cambios y comentarios para que estudies que hace cada cosa.

Código: [Seleccionar]
//Ejercicio 78
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class Prueba {
    public static void main (String [] args) {
        HashSet<String> listaDeString = new HashSet<String>();
        listaDeString.add("sol");
        listaDeString.add("luna");
        listaDeString.add("saturno");
        TreeSet<Integer> listaDeIntegers = new TreeSet<Integer>();
        listaDeIntegers.add(2);
        listaDeIntegers.add(5);
        listaDeIntegers.add(8);
        ArrayList<Set> listaDeSet = new ArrayList<Set>();
        listaDeSet.add(listaDeString);
        listaDeSet.add(listaDeIntegers);
       
        // recorrer el ArrayList
        Iterator<Set> itSet = listaDeSet.iterator();
        while (itSet.hasNext()) {
           
            // esto referencia cada elemento del ArrayList
            Set objetoArrayList = itSet.next();
           
            // recorrer el elemento extraido del ArrayList
            int cuenta = 0;
            Iterator itElemento = objetoArrayList.iterator();
            while (itElemento.hasNext()) {
                System.out.print ( ++cuenta + ".- " + itElemento.next() + "\t");
            }
            // salto de linea despues de cada elemento del ArrayList
            System.out.println();
        }
        /**
        for (Iterator<String> it = listaDeString.iterator(); it.hasNext();) {
            String tmpString = it.next();
            System.out.print("\""+tmpString+"\", ");
        }
        for (Iterator<Integer> it = listaDeIntegers.iterator(); it.hasNext();) {
            Integer tmpInteger = it.next();
            System.out.print(tmpInteger+", ");
        }
        */
        System.out.println("\b\b.");
    }
}

Saludos

jotase1507

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 38
    • Ver Perfil
Si no me equivoco lo que estas haciendo es ingresar en los niveles de almacenamiento uno tras otro, referenciandolos con el Iterator, me costo un poco entender la mecanica de lo que estabas haciendo, pero una vez abri los ojos, se hizo mas sencillo.

Gracias por la ayuda.

 

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".