Hola a todos. Os paso mi código del ejercicio CU00919C del curso avanzado de Java realizado en 4 clases.
No estoy muy convencido del mismo, creo que se debe mejorar mucho.
AGRADECER a todos los participantes el poder aprender cada día más.
GRACIAS. Un saludo.
import java.util.Scanner;
public class EntradaDeTeclado {
private int entrada;
Scanner sc;
public EntradaDeTeclado(){
entrada=0;
sc=new Scanner(System.in);
}
public void setEntrada(){
entrada=sc.nextInt();
}
public int getEntrada(){
return entrada;
}
}
public class Animal {
private String especie;
private String nombre;
private double peso;
private int patas;
public Animal(){}
public Animal(String especie,String nombre,double peso,int patas){
this.especie=especie;
this.nombre=nombre;
this.peso=peso;
this.patas=patas;
}
public String getEspecie() {
return especie;
}
public String getNombre() {
return nombre;
}
public double getPeso() {
return peso;
}
public int getPatas() {
return patas;
}
@Override
public String toString(){
return "Especie: "+especie+", Nombre: "+nombre+", peso: "+peso+", patas: "+patas+"\n";
}
}
import java.util.ArrayList;
import java.util.Iterator;
public class ListaDeAnimales {
ArrayList<Animal> listaAnimales;
public ListaDeAnimales(){
listaAnimales=new ArrayList<Animal>();
}
public void addAnimal(Animal animal){
listaAnimales.add(animal);
}
public ArrayList<Animal> getListaAnimales() {
return listaAnimales;
}
public int getSize(){
return listaAnimales.size();
}
public Iterator<Animal> iterator(){
return new MiIteratorListaDeAnimales();
}
@Override
public String toString(){
return listaAnimales.toString();
}
protected class MiIteratorListaDeAnimales implements Iterator{
public int posicion=0;
public boolean sePuedeEliminar=false;
@Override
public boolean hasNext() {
return posicion<listaAnimales.size();
}
@Override
public Animal next() {
Animal a=listaAnimales.get(posicion);
posicion++;
sePuedeEliminar=true;
return a;
}
@Override
public void remove() {
if(sePuedeEliminar){
listaAnimales.remove(posicion-1);
posicion--;
sePuedeEliminar=false;
}
}
}
}
import java.util.Iterator;
public class Principal {
private static void añadirAnimales(ListaDeAnimales a){
Animal b=new Animal("cetaceos","ballena",4175.25,0);
a.addAnimal(b);
b=new Animal("ovino","obeja",32.25,4);
a.addAnimal(b);
a.addAnimal(new Animal("aracnidos","Tarantula",0.080,8));
a.addAnimal(new Animal ("canes","Pastor Aleman",35,4));
a.addAnimal(new Animal("vacuno","Toro bravo",550,4));
a.addAnimal(new Animal("aves","Gallina",1.5,2));
a.addAnimal(new Animal("primates","Chimpance",10,2));
}
private static void mostrarLista(ListaDeAnimales a){
Iterator<Animal> it=a.iterator();
Animal tmp;
String text="";
int i=1;
System.out.println("Lista de animales: ");
while (it.hasNext()){
tmp=it.next();
text="\nEspecie: "+tmp.getEspecie()+", Nombre: "+tmp.getNombre()+", Peso: "+
tmp.getPeso()+", Patas: "+tmp.getPatas()+", número: "+(i++);
System.out.print(text);
}
}
private static void modificarLista(ListaDeAnimales a){
EntradaDeTeclado e=new EntradaDeTeclado();
System.out.print("\n¿Qué número desea eliminar de los "+a.getSize()+" que hay?: ");
e.setEntrada();
int entrada=e.getEntrada();
Iterator<Animal> it=a.iterator();
int i=1;
Animal tmp;
while (it.hasNext() ) {
tmp=it.next();
if(i==entrada){
it.remove();
}
i++;
}
}
public static void main(String[] args){
ListaDeAnimales lista=new ListaDeAnimales();
añadirAnimales(lista);
mostrarLista(lista);
modificarLista(lista);
mostrarLista(lista);
}
}