Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Jarper en 20 de Enero 2015, 12:48

Título: CU00678B que es polimorfismo java concepto definicion ejemplo practico
Publicado 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:
Código: [Seleccionar]
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.
Título: Re:CU00678B que es polimorfismo java concepto definicion ejemplo practico
Publicado por: toni_apr en 20 de Enero 2015, 19:43
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.