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: Pepote21 en 06 de Febrero 2017, 00:13

Título: Java Recorrer colección Iterable-Iterator código iterador Ejercicio CU00915C#
Publicado por: Pepote21 en 06 de Febrero 2017, 00:13
Hola a todos. Os dejo mi código del ejercicio CU00915C del tutorial gratuito de java avanzado ofrecido en esta web.

GRACIAS

Un saludo.

Código: [Seleccionar]
/**
 * Ejericio CU00915C
 *
 * @author pepote2
 * @version 20170205
 */
public class AvesEnZoo {
    String tipoDeAve;
    int numeroAves, numeroMachos, numeroHembras;
   
    public AvesEnZoo(String tipoDeAve, int numeroAves, int numeroMachos, int numeroHembras){
        this.tipoDeAve = tipoDeAve;
        this.numeroAves = numeroAves;
        this.numeroMachos = numeroMachos;
        this.numeroHembras = numeroHembras;
    }
   
    public void setTipoDeAve(String tipoDeAve){
        this.tipoDeAve = tipoDeAve;
    }
    public void setNumeroAves(int numeroAves){
        this.numeroAves = numeroAves;
    }
    public void setNumeroMachos(int numeroMachos){
        this.numeroMachos = numeroMachos;
    }
    public void setNumeroHembras(int numeroHembras){
        this.numeroHembras = numeroHembras;
    }
       
    public String getTipoDeAve(){
        return tipoDeAve;
    }
    public int getNumeroAves(){
        return numeroAves;
    }
    public int getNumeroMachos(){
        return numeroMachos;
    }
    public int getNumeroHembras(){
        return numeroHembras;
    }
   
    @Override
    public String toString(){
        return tipoDeAve+"    "+numeroAves+"    "+numeroMachos+"    "+numeroHembras;
    }
}


Código: [Seleccionar]
import java.util.Iterator;

/**
 * Ejercicio CU00915C
 * Utilizar un iterador o el for each para recorrer colecciones
 * @author pepote21
 * @version 20170205
 */
public class GruposDeAvesEnZoos implements Iterable<AvesEnZoo>{
   
    public AvesEnZoo [] grupoDeAves;
   
    public GruposDeAvesEnZoos(AvesEnZoo []a){
        grupoDeAves=a;
    }

    @Override
    public Iterator<AvesEnZoo> iterator() {
        Iterator it=new MiIteratorAvesEnZoo();
        return it;
    }
   
    protected class MiIteratorAvesEnZoo implements Iterator<AvesEnZoo>{
        protected int posicionArray;

        public MiIteratorAvesEnZoo(){
            posicionArray = 0;
        }

        @Override
        public boolean hasNext() {
            boolean result;
            if (posicionArray < grupoDeAves.length) {
                result = true;
            }else { result = false;
            }
            return result;
        }

        @Override
        public AvesEnZoo next() {
            posicionArray++;
            return grupoDeAves[posicionArray-1];
        }

        @Override
        public void remove(){
            throw new UnsupportedOperationException("No soportado.");
        }

    }
}


Código: [Seleccionar]
import java.util.Iterator;

/**
 * Ejercicio CU00915C
 * Utilizar un iterador o el for each para recorrer colecciones
 * @author pepote21
 * @version 20170205
 */
public class Principal_915_1 {
    public static void main(String[] args){
       
        AvesEnZoo az1=new AvesEnZoo("Aguila",35,10,25);
        AvesEnZoo az2=new AvesEnZoo("Buitre",100,55,45);
        AvesEnZoo az3=new AvesEnZoo("Halcons",80,25,55);
        AvesEnZoo [] ave={az1,az2,az3};
       
        GruposDeAvesEnZoos ga = new GruposDeAvesEnZoos(ave);
       
       
        Iterator<AvesEnZoo> it1=ga.iterator();
        System.out.println("TIPO"+"\t"+"TOTAL"+"\t"+"MACHOS"+"\t"+"HEMBRAS"+"\n");
        while(it1.hasNext()){
            AvesEnZoo tmp=it1.next();
           
            System.out.println(tmp.toString());
        }
    }
}
Título: Re:Java Recorer colección Iterable-Iterator implementar iterador Ejercicio CU00915C
Publicado por: Ogramar en 08 de Abril 2017, 12:08
Buenas Pepote21 ejercicio bien resuelto

En la clase GruposDeAvesEnZoos aparece un compiler warning: uses unchecked or unsafe operations. Recompile with -Xlint:unchecked for details, esto deberías revisarlo y eliminar ese warning si es posible

Salu2