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
-
Esta es mi solución al ejercicio CU00678B del tutorial de conceptos básicos de Java. La verdad se me hizo un poco enredado.
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.
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++;
}
}
}
-
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.
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?
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 ;).