Respuesta al ejercicio CU00667B del tutorial de programación Java con BlueJ.
EJERCICIO
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).
Por que mi codigo no funciona, me marca error en class Test, linea 20: Iterator <CantanteFamoso> it=lista.iterator();
cannot find symbol - method iterator()
No me reconoce el metodo iterator().
class ListaCantantesFamosos
import java.util.Iterator;
import java.util.ArrayList;
public class ListaCantantesFamosos
{
// instance variables - replace the example below with your own
private ArrayList <CantanteFamoso> lista;
/**
* Constructor for objects of class ListaCantantesFamosos
*/
public ListaCantantesFamosos()
{
// initialise instance variables
this.lista=new ArrayList <CantanteFamoso> ();
}
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
public void addCantante(CantanteFamoso cantante){
lista.add(cantante);
}
}
class CantanteFamoso
import java.util.Iterator;
import java.util.ArrayList;
public class CantanteFamoso
{
// instance variables - replace the example below with your own
private String nombre;
private String discoMasVendido;
/**
* Constructor for objects of class CantanteFamoso
*/
public CantanteFamoso()
{
// initialise instance variables
this.nombre="";
this.discoMasVendido="";
}
public CantanteFamoso(String nombre, String disco)
{
// initialise instance variables
this.nombre=nombre;
this.discoMasVendido=disco;
}
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
public void setNombre(String nombre){
this.nombre=nombre;
}
public void setDiscoMasVendido(String disco){
this.discoMasVendido=disco;
}
public String getNombre(){
return this.nombre;
}
public String getDiscoMasVendido(){
return this.discoMasVendido;
}
}
class Test
import java.util.Iterator;
import java.util.ArrayList;
public class Test
{
public static void main (String [ ] Args){
ListaCantantesFamosos lista=new ListaCantantesFamosos ();
CantanteFamoso cantante=new CantanteFamoso();
cantante.setNombre("Will");
cantante.setDiscoMasVendido("Yigui yigui gure");
lista.addCantante(cantante);
CantanteFamoso cantante2=new CantanteFamoso();
cantante2.setNombre("Chayane");
cantante2.setDiscoMasVendido("Las mañanitas");
lista.addCantante(cantante2);
Iterator <CantanteFamoso> it=lista.iterator(); [b]//Aqui esta mi error[/b]
CantanteFamoso singer;
while(it.next()){
singer=it.next();
System.out.println("Cantante: "+singer.getNombre()+" Disco mas vendido: "+singer.getDiscoMasVendido());
}
}
}