Autor Tema: Java ejercicio resuelto con iterator api java para recorrer colección CU00667B  (Leído 2572 veces)

rubens23

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 30
    • Ver Perfil
Tipo Iterator api Java. Ejemplo. Error java.util.Concurrent ModificationException. Resumen bucles.

Citar
Crea una clase denominada ListaCantantesFamosos que disponga de un atributo ArrayList listaCantantesFamosos que contenga objetos de tipo CantanteFamoso. La clase debe tener un método que permita añadir objetos de tipo CantanteFamoso a la lista. Un objeto de tipo CantanteFamoso tendrá como atributos nombre (String) y discoConMasVentas (String), y los métodos para obtener y establecer los atributos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y añade manualmente dos objetos de tipo CantanteFamoso a la la lista. Usando iterator muestra los nombres de cada cantante y su disco con más ventas por pantalla. Se debe pedir al usuario un nombre y disco con más ventas de otro cantante famoso, y una vez introducidos los datos mostrar la lista actualizada usando iterator. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir los datos de otro cantante o salir del programa (se podrán introducir tantos datos de cantantes como se desee. Para ello usa un bucle while que dé opción a elegir al usuario).


CLASE CANTANTE FAMOSO

Código: [Seleccionar]
package aprender;

public class CantantesFamosos{
String nombre;
String discoConMasVentas;
public CantantesFamosos(String nombre, String discoConMasVentas){
this.nombre = nombre;
this.discoConMasVentas = discoConMasVentas;
}
public void setNombre (String  añadeNombre){
nombre = añadeNombre;
}
public void setDiscoConMasVentas(String añadeDisco){
discoConMasVentas = añadeDisco;
}
public String getNombre (){
return nombre;
}
public String getDiscoConMasVentas (){
return discoConMasVentas;
}
}


CLASE LISTA CANTANTES CON ITERADOR

Código: [Seleccionar]
package aprender;
import java.util.ArrayList;
import java.util.Iterator;

public class ListaCantantes {
//private Object can;
// private CantantesFamosos cantante;
public ArrayList <CantantesFamosos> listaCantantesFamosos;
public ListaCantantes(){
//String  = cantante.to
//cantante = new CantantesFamosos();
listaCantantesFamosos = new ArrayList<CantantesFamosos>();
}
public void addNombre(CantantesFamosos cantante){

//cantante = new CantantesFamosos();

listaCantantesFamosos.add(cantante);
}
public void listar(){
CantantesFamosos cantante;
int i=0;
Iterator<CantantesFamosos>it = listaCantantesFamosos.iterator();
while (it.hasNext()==true){
cantante = it.next();
System.out.println("Cantante "+(i+1)+"- "+cantante.getNombre()+"--> Disco con mas ventas: "+cantante.getDiscoConMasVentas());
i++;
}
}

}


CLASE TEST CON MAIN

Código: [Seleccionar]
package aprender;
import java.util.Scanner;
public class TestCantantes {
private static Scanner resp;
public static void main (String [] args){
resp = new Scanner(System.in);
String dato, dato2,dato3,dato4;
boolean a, b;
CantantesFamosos cantante2 = new CantantesFamosos("Melendi", "Curiosa la cara de tu padre");
CantantesFamosos cantante1 = new CantantesFamosos("Eminem", "Recovery");
ListaCantantes lista1 = new ListaCantantes();
lista1.addNombre(cantante1);
lista1.addNombre(cantante2);
System.out.println("Empezamos el programa para introducir cantantes y sus respectivos discos con mas ventas. \nCantantes ya introducidos:");
lista1.listar();
System.out.println("Introduce un cantante(a continuación se te pedirá que introduzcas su disco)");
dato= resp.nextLine();
System.out.println("Introduce su disco más vendido");
dato2 = resp.nextLine();
CantantesFamosos cantante3 = new CantantesFamosos (dato, dato2);
lista1.addNombre(cantante3);
lista1.listar();
do{
a= false;
b =false;
while (b ==false){
System.out.println("¿Desea introducir otro cantante?(si/no)");
dato = resp.nextLine();
if(dato.equalsIgnoreCase("si")){
a = false;
b = true;
System.out.println("Introduce un cantante");
dato3=resp.nextLine();
System.out.println("Intruduce su disco más vendido");
dato4=resp.nextLine();
CantantesFamosos cantante4 = new CantantesFamosos(dato3,dato4);
lista1.addNombre(cantante4);
lista1.listar();
}else if(dato.equalsIgnoreCase("no")) {
a = true ;
b=true;
System.out.println("Finalizando el programa... \nFin, gracias por usarlo.");
}else{
System.out.println("Introduzca si/no");
}

}}while (a == false);
}
}
« Última modificación: 18 de Junio 2015, 15:29 por Alex Rodríguez »

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Estaba probando tu código y funciona bien. No encontré errores. Hay muchas formas de hacerlo, todo tenemos formas diferente en la lógica.
« Última modificación: 18 de Junio 2015, 15:28 por Alex Rodríguez »

 

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".