Aquí os dejo una posible solución del ejercicio de la clase iterador CU00667B
import java.util.Scanner;
public class EntradaTeclado{
private String entrada;
Scanner scaner;
public EntradaTeclado(){
entrada="";
scaner = new Scanner(System.in);
}
public String getEntrada(){
return entrada;
}
public void setEntrada(){
entrada = scaner.nextLine();
}
}
public class CantanteFamoso{
private String nombre;
private String discoDeMasVentas;
public CantanteFamoso(){
nombre="";
discoDeMasVentas="";
}
public CantanteFamoso(String nombre,String discoDeMasVentas){
this.nombre=nombre;
this.discoDeMasVentas=discoDeMasVentas;
}
public CantanteFamoso(CantanteFamoso cantanteFamoso){
this.nombre=cantanteFamoso.getNombre();
this.discoDeMasVentas=cantanteFamoso.getDiscoMasVentas();
}
public String getNombre(){
return nombre;
}
public String getDiscoMasVentas(){
return discoDeMasVentas;
}
public void setNombre(String nombre){
this.nombre=nombre;
}
public void setDiscoMasVentas(String discoDeMasVentas){
this.discoDeMasVentas=discoDeMasVentas;
}
public void visualizarCantante(){
System.out.println("Nombre : "+nombre+", "+"Disco de mas vendido : "+discoDeMasVentas);
}
}
import java.util.ArrayList;
public class ListaCantantesFamosos{
private ArrayList<CantanteFamoso> listaCantantes;
public ListaCantantesFamosos(){
listaCantantes = new ArrayList<CantanteFamoso>();
}
public ArrayList<CantanteFamoso> getLista(){
return listaCantantes;
}
public CantanteFamoso getCantante(int posicion){
if(posicion>=0 && posicion<listaCantantes.size()){
return listaCantantes.get(posicion);
}else{
return null;
}
}
public void addCantante(CantanteFamoso cantanteFamoso){
listaCantantes.add(cantanteFamoso);
}
public void removeCantante(int posicion){
if(posicion>=0 && posicion<listaCantantes.size()){
listaCantantes.remove(posicion);
}
}
public int getTamaño(){
return listaCantantes.size();
}
}
import java.util.Iterator;
public class TestIterador{
public static void main (String Arg[]){
ListaCantantesFamosos listaCantantes = new ListaCantantesFamosos();
listaCantantes.addCantante(new CantanteFamoso("Primer Cantante","Primer Disco"));
listaCantantes.addCantante(new CantanteFamoso("Segundo Cantante","Segundo Disco"));
System.out.println("Listado de cantantes famosos");
Iterator<CantanteFamoso> iteradorCantante = listaCantantes.getLista().iterator();
while(iteradorCantante.hasNext()){
iteradorCantante.next().visualizarCantante();
}
EntradaTeclado entradaTeclado=new EntradaTeclado();
do{
CantanteFamoso nuevoCantante = new CantanteFamoso();
System.out.print("Dame el nombre de otro cantante famoso : ");entradaTeclado.setEntrada();
nuevoCantante.setNombre(entradaTeclado.getEntrada());
System.out.print("Dame el nombre de su disco mas vendido : ");entradaTeclado.setEntrada();
nuevoCantante.setDiscoMasVentas(entradaTeclado.getEntrada());
listaCantantes.addCantante(nuevoCantante);
System.out.println("Listado de cantantes famosos");
iteradorCantante = listaCantantes.getLista().iterator();
while(iteradorCantante.hasNext()){
iteradorCantante.next().visualizarCantante();
}
System.out.print("¿Desea introducir otro cantante?(S/N) : ");entradaTeclado.setEntrada();
}while(entradaTeclado.getEntrada().equals("S"));
}
}
Un saludo.