Autor Tema: Ejercicio Polimorfismo Java (Set, TreeSet, HashSet) colección objetos CU00678B  (Leído 3501 veces)

SantiagoArg

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
Gente, expongo el ejercicio y hago un par de comentarios para quien se ha vuelto un poco loco como yo a la hora de realizarlo.

Primero, gracias a todos los que han intentado realizar el ejercicio y lo han subido al foro, gracias a ellos pude constatar errores y solucionar otros.
Luego, muchas gracias a lo moderadores que han respondido las inquietudes, a traves de todos los comentarios y respuestas pude entender mejor los conceptos. Todavía me cuesta mucho este tema, pero creo que fue un gran avance

En este ejercicio lo que me resulto de mucha ayuda fue ir haciendo los comentario mientras iba planteando y escribiendo el codigo. Nota (leer sobre Pseudocodigo es fundamental en estos casos) Mas que nada cuando entraba en un ciclo y tenia que volver a preguntarme que hacer dentro de un nuevo ciclo anidado (en fin, el que hace este ejercicio entendera a lo que me refiero)

Consigna:
Citar
La interface Set de Java es implementada por las clases HashSet y TreeSet. Busca información sobre estas clases en la documentación del api Java. Crea un programa Java que haga lo siguiente:

a) Declarar un ArrayList de objetos de tipo Set.

b) Crear un objeto de tipo HashSet para contener Strings y haz que contenga las cadenas “sol”, “luna”, “saturno”.

c) Crear un objeto TreeSet para contener Integers y haz que contenga los números 2, 8, 5.

d) Añade los objetos HashSet y TreeSet como elementos del ArrayList.

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.

Clase Test_Polimorfismo

Código: [Seleccionar]

import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.TreeSet;
import java.util.Iterator;

public class Test_Polimorfismo
{
    public static void main(String[] args)
    {
        // Declaro las 3 colecciones
        ArrayList<Set> miLista = new ArrayList<Set>();
        HashSet<String> miHashSet = new HashSet<String>();
        TreeSet<Integer> miTreeSet = new TreeSet<Integer>();
       // Asigno los elementos a cada lista
        miHashSet.add("sol"); miHashSet.add("luna"); miHashSet.add("saturno");
        miTreeSet.add(2); miTreeSet.add(8); miTreeSet.add(5);
        // Asigno las 2 listas a mi listado
        miLista.add(miHashSet); miLista.add(miTreeSet);
       
        //Creo un iterador para recorrer "miLista"
         Iterator<Set> it1 = miLista.iterator();
         
         // mientras el iterador que contiene la copia de "miLista" tenga elementos
         while(it1.hasNext())
         {
             Set tmp = it1.next(); // En tmp guardo ese elemento (que es tambien una lista)
             Iterator<Set> it2 = tmp.iterator();// entonces creo un nuevo iterador para pasarle una copia de tmp (que habiamos dicho es una lista tambien)
             while(it2.hasNext()) // Entonces, mientras it2 (iterador de mi sublista), tenga elementos
             {
                System.out.print( it2.next() + ","); // mostrara cada uno de ellos
               
             }                                 
         }
    }
}
 

Como muchos, he tenido problemas cuando trataba de hacer una clasificacion tanto con los Strings como con los Integers, al final vi un comentario de "Cesar Krall" para "betico"
que me ayudo a entender y hacer mas simple el codigo, les paso el link: https://www.aprenderaprogramar.com/foros/index.php?topic=912.msg5263#msg5263
Gracias  a los dos.

Este ejercicio (creo) retorna la consigna de manera correcta, espero les sirva!

Saludos.
« Última modificación: 06 de Abril 2016, 11:03 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola!

Tu ejercicio está correcto, no es un ejercicio fácil porque maneja muchos conceptos

Al ejecutar tu código salta un warning debido a que el compilador no es capaz de hacer una verificación de tipos completa (aunque esto no supone luego ningún problema a la hora de la ejecución).

Puedes ver un ejemplo donde no salta el warning haciendo una comprobación de tipos en este hilo del foro: https://www.aprenderaprogramar.com/foros/index.php?topic=2384.0

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

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