Hola a todos !! paso a dejar el codigo del ejercicio de la clase CU00678B del curso de programador Java desde cero. Desde ya muchas gracias. Saludos
Luis
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.
Rta: Aclararo que estas dos clases tienen distintos comportamientos. HashSet muestra los elementos sin un orden determinado y TreeSet los muestra ordenados. El punto e) que pide que se muestre por pantalla las dos listas tenemos la dificultad que "sol","luna" y "saturno" quizás se muestren en ese orden pero es imposible que cuando les toque a los nros lo hagan en ese orden, ya que el orden será: 2, 5 y 8.
import java.util.*;
public class Polimorfismo {
public static void main(String[] args) {
//lista principal que contiene una lista HashSet y otra TreeSet
ArrayList<Set> lista = new ArrayList<Set>();
//Lista secundaria con strings
HashSet<String> hs = new HashSet<String>();
hs.add("sol");
hs.add("luna");
hs.add("saturno");
//lista secundaria con numeros
TreeSet<Integer> ts = new TreeSet<Integer>();
ts.add(2);
ts.add(8);
ts.add(5);
//Agrego al ArrayList las2 listas
lista.add(hs);
lista.add(ts);
Set item = null;
Iterator<Set> it = lista.iterator();
// recorrido por la lista principal
while(it.hasNext()){
item = it.next();
Iterator<Set> it2 = item.iterator();
int i=0;
// recorrico por las listas secundarias
while(it2.hasNext()){
System.out.print(it2.next()+", ");
}
}
}
}