321
Aprender a programar desde cero / Java ejercicio resuelto con ArrayList para crear una lista de cantantes CU00667B
« en: 03 de Junio 2015, 17:50 »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 para crear teclado
Código: [Seleccionar]
package ejercicioscu00667b;
import java.util.Scanner;
public class EntradaDeTeclado {
private String entradaTeclado;
Scanner sc = new Scanner(System.in);
public EntradaDeTeclado() {
entradaTeclado = "";
}
public String AgregarCantante() {
entradaTeclado = sc.nextLine();
return entradaTeclado;
}
public String getEntrada() {
return entradaTeclado;
}
}
Clase para Crear cantante y su disco
Código: [Seleccionar]
package ejercicioscu00667b;
public class CantanteFamoso {
private String nombre;
private String discoMasVendido;
public CantanteFamoso() {
nombre = "";
discoMasVendido = "";
}
public CantanteFamoso(String nombre, String discoMasVendido) {
this.nombre = nombre;
this.discoMasVendido = discoMasVendido;
}
public String getDiscoConMasVentas() {
return discoMasVendido;
}
public String getNombre() {
return nombre;
}
}
Clase para listar y agregar cantante y su disco
Código: [Seleccionar]
package ejercicioscu00667b;
import java.util.ArrayList;
import java.util.Iterator;
public class ListaCantantesFamosos {
ArrayList<CantanteFamoso> cantantes;
public ListaCantantesFamosos() {
cantantes = new <CantanteFamoso> ArrayList();
}
public void AgregarCantanteFamoso(CantanteFamoso Cantante) {
cantantes.add(Cantante);
}
public void listarCantanteFamoso() {
CantanteFamoso cantante;
Iterator<CantanteFamoso> continuar = cantantes.iterator();
while (continuar.hasNext()) {
cantante = continuar.next();
System.out.print("Cantante: " + cantante.getNombre());
System.out.println(" Discos con mas ventas: " + cantante.getDiscoConMasVentas());
}
}
}
Clase principal main
Código: [Seleccionar]
package ejercicioscu00667b;
import java.util.Scanner;
public class EjerciciosCu00667B {
public static void main(String[] args) {
String cantante, disco;
ListaCantantesFamosos listacantate = new ListaCantantesFamosos();
EntradaDeTeclado entrada = new EntradaDeTeclado();
CantanteFamoso cantante1 = new CantanteFamoso("Marcos Antonio", "Navidad sin ti");//los datos no son reales
CantanteFamoso cantante2 = new CantanteFamoso("Enrique Iglesia", "Si tu te va");
listacantate.AgregarCantanteFamoso(cantante1);
listacantate.AgregarCantanteFamoso(cantante2);
System.out.println("La lista contiene los siguientes datos: ");
listacantate.listarCantanteFamoso();
String continuar = new String();
Scanner sc = new Scanner(System.in);
do {
System.out.println("Ingrese nombre de un cantante: ");
cantante = entrada.AgregarCantante();
System.out.println("Ingrese su disco mas vendido: ");
disco = entrada.AgregarCantante();
listacantate.AgregarCantanteFamoso(new CantanteFamoso(cantante, disco));
System.out.println("La lista contiene los siguientes datos: ");
List.listarCantanteFamoso();
System.out.println("¿Deseas agregar otro cantante y su disco (S/N)?");
continuar = sc.nextLine();
} while (continuar.equalsIgnoreCase("s"));
}
}
Una pregunta, cómo se puede hacer para cargar directamente los datos de los cantantes inicialmente sin usar un new cantante. Es decir como los ejercicios anteriores ejemplo cantante.add("Marcos antonio"); porque este tiene dos datos que el nombre y el disco y no funciona cuando quiere poner así por ejemplo cantante.add("Marcos antonio", "navidad sin ti"); como podía hacer eso.