Buenos días, presento el ejercicio CU00919C del tutorial de programación Java avanzado
package animal;
/**
*
* @author itco1724
*/
public class Animal implements Comparable<Animal>{
private String especie;
private String nombre;
private double peso;
private int numeroDePatas;
private int numero;
public Animal (String especie, String nombre, double peso, int numeroDePatas, int numero){
this.especie = especie;
this.nombre = nombre;
this.peso = peso;
this.numeroDePatas = numeroDePatas;
this. numero = numero;
}
@Override
public String toString() {
return " Especie: "+ especie+ " Nombre: "+ nombre + " : " +" Numero de Patas: "+numeroDePatas+" Numero en la Lista: " + numero + "\n";}
//Cuando se trate de realizar una ordenación “natural”, esta se hará por orden alfabético de nombres.
@Override
public int compareTo(Animal o) {
return this.nombre.compareTo(o.nombre);}
public String getEspecie() {return especie;}
public String getNombre() {return nombre;}
public double getPeso (){return peso;}
public int getnumeroDePatas() {return numeroDePatas;}
public int getnumero (){return numero;}
}//Cierre de la clase
package animal;
import java.util.ArrayList;
import java.util.Iterator;
/**
*
* @author itco1724
*/
public class ListaDeAnimales {
private ArrayList<Animal> listaanimales = null; // Campo de la clase
public ListaDeAnimales() {listaanimales = new ArrayList<Animal>();} // Constructor de la clase
public ArrayList<Animal> getListaDeAnimales(){return listaanimales;} //Omitimos otros métodos
public Iterator<Animal> iterator() {return new MiIteradorListaDeAnimales();} // Método de la clase
//sobreescrito el método toString
@Override
public String toString() {return listaanimales.toString();} // Método de la clase
// Clase interna
protected class MiIteradorListaDeAnimales implements Iterator<Animal> {
public int posicion = 0; public boolean sepuedeeliminar = false; // Campos
@Override
public boolean hasNext() {return posicion < listaanimales.size();} // Método
@Override
public Animal next() { // Método
Animal res = listaanimales.get(posicion); // Creamos un objeto Persona igual al que recorremos
posicion ++;
sepuedeeliminar = true;
return res;}
@Override
public void remove() {
if (sepuedeeliminar) {
listaanimales.remove(posicion-1);
posicion--;
sepuedeeliminar = false; }
} // Cierre del método remove
} // Cierre de la clase interna
}
package animal;
import java.util.Iterator;
import java.util.Scanner;
/**
*
* @author itco1724
*/
public class TestPrograma {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ListaDeAnimales cp = new ListaDeAnimales();
Iterator<Animal> it;
Animal e; // Este objeto lo usaremos para almacenar temporalmente objetos Animales
cp.getListaDeAnimales().add(new Animal("pantera","Penelope",98.55,4,1));
cp.getListaDeAnimales().add(new Animal(" loro amazónico","Juanito",3.67,2,2));
cp.getListaDeAnimales().add(new Animal("perro grandanés","Artur",38.77,4,3));
cp.getListaDeAnimales().add(new Animal("mono de tanzania","Monk",55.32 ,2,4));
System.out.println("Los animales en la lista son:: "+cp.toString());
//recorrer la lista
it = cp.iterator();
System.out.println ("¿Qué número desea eliminar?:");
String entrada="";
Scanner x = new Scanner (System.in); //Creación de un objeto Scanner
entrada = x.nextLine ();
//Convertir un string en entero
int numEntero = Integer.parseInt(entrada);
while (it.hasNext() ) {
e = it.next();
int enumEntero = 0;
if (e.getnumero()== numEntero) {it.remove(); } // it.remove() elimina la selección de la colección
}
System.out.println("Lista después de recorrer/eliminar: " + cp.toString() );
}
}
Saludos