Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Dimitar Stefanov en 10 de Marzo 2016, 22:45

Título: Concepto definición de polimorfismo en Java meter en una colección CU00678B
Publicado por: Dimitar Stefanov en 10 de Marzo 2016, 22:45
Buenas noches.

Una posible solución del ejercicio CU00678B del curso Java desde cero.

Citar
EJERCICIO

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.

El código:

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.TreeSet;
import java.util.Iterator; //Todos los "import" los podíamos haber hecho con: import java.util.*

public class PolimorfismoJava{
    public static void main(String [] Args){
        //Definimos y creamos objeto "misListas" de clase "ArrayList" que implementa la interfaz "Set".
        ArrayList<Set> misListas;
        misListas = new ArrayList<Set>();
       
        //Definimos y creamos objeto "miListaHashSet" (de clase "HashSet") que tendrá tipos "String". La clase "HashSet" implementa la interfaz "Set".
        HashSet<String> miListaHashSet;
        miListaHashSet = new HashSet<String>();
       
        //Definimos y creamos (en una línea) objeto "miListaTreeSet" (de clase "TreeSet") que tendrá tipos "Integer". La clase "TreeSet" implementa la interfaz "Set".
        TreeSet<Integer> miListaTreeSet = new TreeSet<Integer>();
       
        //Añadimos elementos a la array "miListaHashSet".
        miListaHashSet.add("sol");
        miListaHashSet.add("luna");
        miListaHashSet.add("saturno");
       
        //Añadimos elementos a la array "miListaTreeSet".
        miListaTreeSet.add(8);
        miListaTreeSet.add(5);
        miListaTreeSet.add(2);
       
        //Añadimos los objetos "miListaHashSet" y "miListaTreeSet" a la array "misListas".
        misListas.add(miListaHashSet);
        misListas.add(miListaTreeSet);
       
        //Definimos objetos "Iterator" de tipo "Set", "String" y "Integer" respectivamente.
        Iterator<Set> it;
        Iterator<String> itHashSet;
        Iterator<Integer> itTreeSet;
       
        //Invacamos el método ".iterator()" sobre los objetos "misListas", "miListaHashSet" y "miListaTreeSet" para crear copias de su contenido (colección).
        it = misListas.iterator();
        itHashSet = miListaHashSet.iterator();
        itTreeSet = miListaTreeSet.iterator();
       
        //El bucle "while" exterior recorre los elementos del objeto "misListas", mientras los bucles "while" interiores recorren los objetos "miListaHashSet" y "miListaTreeSet" respectivamente."
        while(it.hasNext()){
            if(it.next() instanceof HashSet){
                System.out.println("Colección en HashSet:");
                while(itHashSet.hasNext()){
                    System.out.print(itHashSet.next()+"; ");
                }
                System.out.println();
            }else{
                System.out.println("Colección en TreeSet");
                while(itTreeSet.hasNext()){
                    System.out.print(itTreeSet.next()+"; ");
                }
            }
        }
       
       
    }
}

Gracias.
Título: Re:Concepto definición de polimorfismo en Java meter en una colección CU00678B
Publicado por: César Krall en 11 de Marzo 2016, 14:32
Hola! Lo veo perfecto

Saludos