Autor Tema: Ejercicios resueltos interface Iterator api java hasNext remove ejemplo CU00919C  (Leído 2119 veces)

@mayakoski

  • Sin experiencia
  • *
  • Mensajes: 43
    • Ver Perfil
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();
}

}
« Última modificación: 13 de Septiembre 2020, 18:52 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Buenas, para quien revise este código, está bien resuelto y cumple con lo que se pedía. Salu2.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".