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: @mayakoski en 25 de Marzo 2020, 04:05

Título: Ejercicios resueltos interface Iterator api java hasNext remove ejemplo CU00919C
Publicado por: @mayakoski en 25 de Marzo 2020, 04:05
Paso a dejar mi solución al ejercicio CU00919C del tutorial pdf de programación Java avanzada, espero les sea de utilidad


Código: [Seleccionar]
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;
}

}


Código: [Seleccionar]
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;
}

}

}


Código: [Seleccionar]
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();
}

}
Título: Re:Ejercicios resueltos interface Iterator api java hasNext remove ejemplo CU00919C
Publicado por: Ogramar en 13 de Septiembre 2020, 19:00
Buenas, para quien revise este código, está bien resuelto y cumple con lo que se pedía. Salu2.