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: mary conchis en 27 de Octubre 2018, 02:08

Título: Qué significa polimorfismo en Java asignar tipo de dato tipo instancia CU00678B
Publicado por: mary conchis en 27 de Octubre 2018, 02:08
Esta es mi solución al ejercicio CU00678B del tutorial de conceptos básicos de Java. La verdad se me hizo un poco enredado.

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.


Código: [Seleccionar]
import java.util.*;
public class polimorfismo
{
    public static void main(String[] args)
    {
    ArrayList<Set> misListas=new ArrayList<Set>();
    HashSet<String> listaHash=new HashSet<String>();
    TreeSet<Integer> listaTree=new TreeSet<Integer>();
   
    listaHash.add("sol");
    listaHash.add("luna");
    listaHash.add("Saturno");
   
    listaTree.add(2);
    listaTree.add(8);
    listaTree.add(5);

    Iterator itHash=listaHash.iterator();
    Iterator itTree=listaTree.iterator();
   
    misListas.add(listaHash);
    misListas.add(listaTree);
   
    for(Set listas:misListas){
        int i=0;
    Iterator<Set> itListas=listas.iterator();
    System.out.println("contenido de la lista("+i+")"+listas);
    int j=0;
    while(itListas.hasNext()){
      System.out.println("objeto("+i+") de la lista("+j+")"+itListas.next());
      j++;
    }
    i++;
}
}
}
Título: Re:java desde cero ejercicio (cu00678b) concepto de polimorfismo
Publicado por: paramonso en 03 de Noviembre 2018, 20:03
Hola Mari conchis.

El ejercicio esta bien resuelto y hace lo que se pide.

Solo comentarte un pequeño fallo que se te ha pasado por alto en el código con la variable i . Si esta variable la dejas dentro del bucle siempre estará a cero ok. Aunque la incrementes al salir del while, al entrar en el for se pone a cero.

Citar
     
    Iterator<Set> itListas=listas.iterator();
  int i=0;
    System.out.println("contenido de la lista("+i+")"+listas);
    int j=0;
    while(itListas.hasNext()){
      System.out.println("objeto("+i+") de la lista("+j+")"+itListas.next());
      j++;
    }
    i++; 
}

Esta variable se tiene que iniciar a cero antes de iniciar el for each.
Hay que sacarla del for y a si se incrementara al salir del while. Ok?
Citar
    int i=0;
 for(Set listas:misListas){
   
    Iterator<Set> itListas=listas.iterator();
    System.out.println("contenido de la lista("+i+")"+listas);
    int j=0;
    while(itListas.hasNext()){
      System.out.println("objeto("+i+") de la lista("+j+")"+itListas.next());
      j++;
    }
    i++;
}

Todo correcto.
Un saludo ;).