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: xBag en 15 de Enero 2015, 16:32
-
Saludos! Cómo están?
Duré un tiempo para hacer este ejercicio me confundí un poco pero creo que pude resolver y entender mejor. Aquí les dejo el enunciado:
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.
Está bien o que puedo mejorar?
import java.util.*;
public class Polimorfismo {
public static void main (String []args){
ArrayList<Set> aList = new ArrayList<Set>();
HashSet<String> hSet = new HashSet<String>();
hSet.add("sol");
hSet.add("luna");
hSet.add("saturno");
TreeSet<Integer> tSet = new TreeSet<Integer>();
tSet.add(2);
tSet.add(8);
tSet.add(5);
aList.add(hSet);
aList.add(tSet);
Iterator<Set> itSet = aList.iterator();
while (itSet.hasNext()){
for(int i=0;i<itSet.next().size();i++){
System.out.println(aList.get(i));
if (itSet.hasNext()==false)break;
}
}
}
}
Creo que debí usar más iteratores...
-
Hola xBag
Tu ejercicio da una respuesta, pero no hace todo lo que se pide.
A la hora de mostrar los elementos, solo muestras dos elementos. El primero que contiene tres String y el segundo que contiene tres int
Lo que se pide es que muestres cada String individualmente (para poder hacer algo con él tal vez) y que muestres cada uno de los int (tal vez para poder hacer operaciones aritméticas con ellos)
En tu ejercicio usas el polimorfismo para introducir los elementos en la lista, pero también debes usarlo para mostrarlos.
Lo que has de hacer es lo siguiente:
Cuando entres en el while, al primer elemento que encuentres has de averiguar si es el HashSet o el TreeSet.
Cuando sepas eso, abres ese objeto en otro while interno y con otro Iterator recorres esos elementos para mostrarlos. etc. y así hasta mostrar toda la colección.
Saludos