Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: DRANXZ88 en 05 de Mayo 2016, 17:04

Título: Java polimorfismo Un constructor es sólo para construir el objeto CU00678B
Publicado por: DRANXZ88 en 05 de Mayo 2016, 17:04
Solución propuesta para el ejercicio CU00678B del tutorial de programación java desde cero:

CLASE PRINCIPAL MAIN

Código: [Seleccionar]
package ejerciciosc00678b;

public class EjerciciosC00678B {

    public static void main(String[] args) {

        MiLista lista = new MiLista();

        lista.Listar();
    }

}

CLASE CONTENEDORA DEL ARRAY

Código: [Seleccionar]
package ejerciciosc00678b;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;

public class MiLista {

    private ArrayList listas;

    public MiLista() {
        listas = new ArrayList();
        HashSet<String> listaHashSet = new HashSet<>();
        listaHashSet.add("sol");
        listaHashSet.add("luna");
        listaHashSet.add("saturno");

        TreeSet listaTreeSet = new TreeSet();
        listaTreeSet.add(8);
        listaTreeSet.add(5);
        listaTreeSet.add(2);

        listas.add(listaHashSet);
        listas.add(listaTreeSet);
    }

    public void Listar() {
        Iterator it = listas.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }

}
Título: Re:Ejercicios de java desde cero (CU00678B).
Publicado por: Dimitar Stefanov en 06 de Mayo 2016, 14:53
Buenas tardes, DRANXZ88.

Creo que no has cumplido con esta parte del ejercicio:

Citar
a) Declarar un ArrayList de objetos de tipo Set.

b) Crear un objeto de tipo HashSet para contener Strings...

c) Crear un objeto TreeSet para contener Integers...

Además, por crear todo el objeto en una clase que no contien "main", creo que mejor síntaxis sería esta:

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;
import java.util.Set;

public class MiLista {

    private ArrayList<Set> listas;
    private HashSet<String> listaHashSet;
    private TreeSet<Integer> listaTreeSet;

    public MiLista() {
        listas = new ArrayList<Set>();
        listaHashSet = new HashSet<String>();
        listaTreeSet = new TreeSet<Integer>();
    }
   
    public void addListaHashset(){
        listaHashSet.add("sol");
        listaHashSet.add("luna");
        listaHashSet.add("saturno");
    }
   
    public void addListaTreeSet(){
        listaTreeSet.add(8);
        listaTreeSet.add(5);
        listaTreeSet.add(2);
    }
   
    public void addMiLista(){
        listas.add(listaHashSet);
        listas.add(listaTreeSet);
    }

    public void Listar() {
        Iterator it = listas.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
        //System.out.println("HOla");
    }

}

Así vemos cada método que hace. Un constructor es sólo para construir el objeto, no para añadir atributos en él. Por supuesto, ya que hemos definido el objeto de tal manera en el "main" tienes que invocar todos los métodos necesarios del objeto "MiLista". El main quedará así:

Código: [Seleccionar]
public class EjerciciosC00678B {

    public static void main(String[] args) {

        MiLista lista = new MiLista();
        lista.addListaHashset();
        lista.addListaTreeSet();
        lista.addMiLista();
        lista.Listar();
    }

}

Saludos :)
Título: Re:Concepto de polimorfismo en Java. CU00678B
Publicado por: DRANXZ88 en 06 de Mayo 2016, 16:52
Gracia por la aclaración no sabia luengo como era un array de tipo set ahora ya entiendo  :)