Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Jarper en 20 de Enero 2015, 12:48
-
Buenos días,
tras estar batallando 3 horas con el código, buscando información y usando el debugger he desistido.
Ayuda!! :P.
Me he fijado que los valores que añado a las diferentes listas se añaden aleatoriamente en la posición de la lista por lo que al recorrerlas con el for each y los iteradores, se muestran tal cual se han añadido en la posición de la lista.
Dejo el 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:
public class Test78
{
public static void main(String[] args){
ArrayList<Set> arraySet = new ArrayList<Set>();
HashSet<String> hashString = new HashSet<String>();
hashString.add("sol");
hashString.add("luna");
hashString.add("saturno");
TreeSet<Integer> treeInteger = new TreeSet<Integer>();
treeInteger.add(2);treeInteger.add(8);treeInteger.add(5);
arraySet.add(hashString);arraySet.add(treeInteger);
for(Set tmpSet:arraySet){
Iterator iterator = tmpSet.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
}
Lo que me imprime por pantalla es: luna, saturno, sol, 2, 5, 8.
Muchas gracias, atentamente.
-
Hola Jarper
Tu ejercicio está muy bien, extrae los elementos de la colección y los muestra.
Respecto al orden en que se muestran los elementos, has de recurrir a la documentación de Java:
Para la clase HashSet
No se garantiza el orden en que que añaden los elementos.
Nota: Para tener la lista ordenada habremos de usar otra clase que permita o mantenga el orden de los elementos.
Para la clase TreeSet
Ver su método descendingIterator() para obtener los elementos en orden inverso.
Saludos y adelante.