Paso a dejar mi solución al ejercicio CU00919C del tutorial pdf de programación Java avanzada, espero les sea de utilidad
package claseCU00919C;
public class Animal {
private String especie;
private String nombre;
private double peso;
private int patas;
public Animal(String pEspecie, String pNombre, double pPeso, int pPatas) {
this.especie = pEspecie;
this.nombre = pNombre;
this.peso = pPeso;
this.patas = pPatas;
}
public String toString() {
return "Especie: " + especie + ", Nombre: " + nombre + ", Peso: " + peso + ", patas: " + patas;
}
}
package claseCU00919C;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class ListaDeAnimales {
private ArrayList<Animal> listaDeAnimales = null;
public ArrayList<Animal> getListaDeAnimales() {
return listaDeAnimales;
}
public ListaDeAnimales() {
this.listaDeAnimales = new ArrayList<Animal>();
}
public Iterator<Animal> iterator() {
return new MiIteradorDeAnimales();
}
public Iterator<Animal> retorna() {
return listaDeAnimales.listIterator();
}
public String toString() {
return listaDeAnimales.toString();
}
protected class MiIteradorDeAnimales implements Iterator<Animal> {
public int posicion = 0;
boolean permiteBorrar = false;
@Override
public boolean hasNext() {
return posicion < listaDeAnimales.size();
}
@Override
public Animal next() {
Animal aux = listaDeAnimales.get(posicion);
permiteBorrar = true;
posicion++;
return aux;
}
public void remove() {
listaDeAnimales.remove(posicion - 1);
posicion--;
permiteBorrar = false;
}
}
}
package claseCU00919C;
import java.util.Iterator;
import java.util.Scanner;
public class Programa {
public static void main(String[] args) {
Scanner entradaTeclado = new Scanner(System.in);
ListaDeAnimales la = new ListaDeAnimales();
la.getListaDeAnimales().add(new Animal("pantera", "Penelope", 98.55, 4));
la.getListaDeAnimales().add(new Animal("loro amazonico", "Juanito", 3.67, 2));
la.getListaDeAnimales().add(new Animal("perro grandanés", "Artur", 37.77, 4));
la.getListaDeAnimales().add(new Animal("mono de tanzania", "Monk", 55.32, 2));
Iterator<Animal> ita;
Animal tmp;
ita = la.iterator();
int elem = 0;
int elemElimina = 0;
System.out.println("Los animales en la lista son: ");
while (ita.hasNext()) {
tmp = ita.next();
System.out.println(tmp.toString() + ", numero: " + ++elem);
}
System.out.print("¿Que número desea eliminar? ");
elemElimina = entradaTeclado.nextInt();
elem = 0;
ita = la.retorna();
while (ita.hasNext()) {
tmp = ita.next();
if (elem + 1 == elemElimina) {
ita.remove();
elemElimina = 0;
} else {
System.out.println(tmp.toString() + ", numero: " + ++elem);
}
}
System.out.println();
}
}