201
Aprender a programar desde cero / Ejercicio! entrega CU00667B ArrayList de objetos java
« en: 30 de Julio 2014, 00:55 »![Sonrisa :)](https://aprenderaprogramar.com/foros/Smileys/default/smiley.gif)
public class TesListaCantantesFamosos
Código: [Seleccionar]
import java.util.*;
public class TesListaCantantesFamosos
{
private static ListaCantantesFamosos lista;
public TesListaCantantesFamosos()
{
}
public static void main(String []args)
{
System.out.println(" Hola!\nAyudanos a crear nuestra lista de cantantes famosos\nLa lista inicial contiene los siguientes datos:\n");
lista = new ListaCantantesFamosos("Madonna", "All I want is you");
lista.addObjetoCantante("Jorge Negrete", "Jalisco");
lista.verLaListaCantantesFamososDetallada();
System.out.println("\nPor favor agrega otro cantante.\n");
lista.addObjetoCantante(entradaNombre(), entradaDiscoConMasVentas());
mensajeNotificador();
lista.verLaListaCantantesFamososDetallada();
System.out.println("\n¿Deseas introducir los datos de otro cantante (s/n)?");
String volver = "";
volver = entrada();
while(volver.equals("s") || volver.equals("S"))
{
System.out.println("\f\nIntroduce los datos del otro cantante.");
agregarOtroCantanteMas();
mensajeNotificador();
lista.verLaListaCantantesFamososDetallada();
System.out.println("\n¿Te gustaría introducir los datos de otro cantante mas (s/n)?");
volver = "";
volver = entrada();
}
System.out.println("¿Te gustaría remplazar alguno de los datos existentes en nuestra lista (s/n)?");
String remplazar = "";
boolean modificacionEnNombre = false;
boolean modificacionEnDisco = false;
remplazar = entrada();
while(remplazar.equals("s") || remplazar.equals("S"))
{
if(remplazar.equals("s") || remplazar.equals("S"))
{
System.out.println("\f\nElige el numero relacionado con los datos a remplazar\n");
lista.verPosicionObjetoYDatosQueContiene();
String posicion = "";
posicion = entrada();
int enteroPosicion = 0;
enteroPosicion = Integer.parseInt(posicion);
System.out.println("Deseas remplazar el nombre (s/n)?");
String opcion = "";
opcion = entrada();
if(opcion.equals("s"))
{
System.out.println("Introduce el nuevo nombre");
lista.remplazarCantanteEnObjetoPosicion(enteroPosicion);
modificacionEnNombre = true;
}
System.out.println("Deseas remplazar el disco con mas ventas (s/n)?");
opcion = entrada();
if(opcion.equals("s"))
{
System.out.println("Introduce el nuevo disco con mas ventas");
lista.remplazarDiscoConMasVentasEnObjetoPosicion(enteroPosicion);
modificacionEnDisco = true;
}
else if(modificacionEnNombre == false && modificacionEnDisco == false)
{
System.out.println("\f\nNo realizaste ninguna modificación!\nEsta es nuestra lista de cantantes famosos:\n");
lista.verLaListaCantantesFamososDetallada();
}
else if(modificacionEnNombre == true && modificacionEnDisco == false || modificacionEnNombre == false && modificacionEnDisco == true)
{
System.out.println("\f\nSe ha actualizado la lista exitosamente\nEsta es nuestra lista de cantantes famosos:\n");
lista.verLaListaCantantesFamososDetallada();
}
}
else
{
System.out.println("\f\nSe ha actualizado la lista exitosamente\nEsta es nuestra lista de cantantes famosos:\n");
lista.verLaListaCantantesFamososDetallada();
}
if(modificacionEnNombre == false && modificacionEnDisco == false)
{
System.out.println("\n¿Te gustaria intentar nuevamente remplazar algún otro dato existente en nuestra lista (s/n)?");
remplazar = entrada();
}
else
{
System.out.println("\n¿Te gustaría remplazar algún otro dato existente en nuestra lista (s/n)?");
remplazar = entrada();
}
if(remplazar.equals("n") || remplazar.equals("N") && modificacionEnNombre == false && modificacionEnDisco == false)
{
System.out.println("\f\nEsta es nuestra lista de cantantes famosos:\n");
lista.verLaListaCantantesFamososDetallada();
}
else if(remplazar.equals("n") || remplazar.equals("N") && modificacionEnNombre == true || modificacionEnDisco == true)
{
System.out.println("\f\n Se han realizado las modificaciones de forma exitosa\nEsta es nuestra lista de cantantes famosos actualizada:\n");
lista.verLaListaCantantesFamososDetallada();
}
}
System.out.println("\nDeseas eliminar algún cantante de nuestra lista de cantantes famosos (s/n)?");
String eliminar = "";
eliminar = entrada();
while(eliminar.equals("s") || eliminar.equals("S"))
{
System.out.println("\f\nElige el numero relacionado al cantante que deseas eliminar de la lista:\n");
lista.verPosicionObjetoYDatosQueContiene();
String posicion = "";
posicion = entrada();
int enteroPosicion = 0;
enteroPosicion = Integer.parseInt(posicion);
System.out.println("\f\n El cantante " +
lista.obtenerObjetoEnPosicion(enteroPosicion).getNombre() + ", ha sido eliminado exitosamente de la lista.\nEsta es nuestra lista actualizada:\n");
lista.eliminarCantanteEnPosicion(enteroPosicion);
lista.verLaListaCantantesFamososDetallada();
System.out.println("\nDeseas eliminar algún otro cantante de nuestra lista de cantantes famosos (s/n)?");
eliminar = entrada();
}
System.out.println("\f\nEsta es nuestra lista de cantantes famosos:\n");
lista.verLaListaCantantesFamososDetallada();
System.out.println("\nGracias por ayudarnos a crear nuestra lista de cantantes famosos\nHasta luego.");
}
//Metodos de pocas lineas, para evitar duplicar código en el main.
private static String entrada()//Crea entradas por teclado
{
Scanner escaner = new Scanner(System.in);
return escaner.nextLine();
}
private static String entradaNombre()//Crea una entrada personalizada para el campo nombre de un objeto tipo Cantante
{
System.out.println("Nombre: ");
return entrada();
}
private static String entradaDiscoConMasVentas()//Crea una entrada personalizada para el campo discoConMasVentas de un objeto tipo Cantante
{
System.out.println("Disco con mas ventas: ");
return entrada();
}
private static void agregarOtroCantanteMas()//Agrega un objeto tipo Cantante a la lista
{
lista.addObjetoCantante(entradaNombre(), entradaDiscoConMasVentas());
}
private static void mensajeNotificador()//Notifica de que se ha agregado x cantante a la lista, exitosamente
{
System.out.println("\f\nSe ha actualizado la lista con el cantante " + lista.obtenerObjetoEnPosicion(lista.obtenerSizeDeListaDeCantantesF() - 1).getNombre() +
", agregado exitosamente!\nEsta es nuestra nueva lista:\n");
}
}
public class ListaCantantesFamososCódigo: [Seleccionar]
import java.util.*;
public class ListaCantantesFamosos
{
private ArrayList<CantanteFamoso> listaDeCantantesF;
public ListaCantantesFamosos(String nombre, String discoConMasVentas)
{
listaDeCantantesF = new ArrayList<CantanteFamoso>();
addObjetoCantante(nombre, discoConMasVentas);
}
public void addObjetoCantante(String nombre, String discoConMasVentas)
{
listaDeCantantesF.add(new CantanteFamoso(nombre, discoConMasVentas));
}
public void verPosicionObjetoYDatosQueContiene()
{
int i = 0;
for(CantanteFamoso datos : listaDeCantantesF)
{
System.out.println(i + ": " + datos.getNombre() + " - " + datos.getDiscoConMasVentas()); i++;
}
}
public void verLaListaCantantesFamososDetallada()
{
Iterator<CantanteFamoso> copiaDeCantanteFamoso = listaDeCantantesF.iterator();
CantanteFamoso tmpAnalizando;
int i = 1;
while(copiaDeCantanteFamoso.hasNext())
{
tmpAnalizando = copiaDeCantanteFamoso.next();
System.out.println("Cantante " + i + " - " + "Nombre: " + tmpAnalizando.getNombre() + ". Disco con mas ventas: " + tmpAnalizando.getDiscoConMasVentas() + "."); i++;
}
}
public void remplazarCantanteEnObjetoPosicion(int posicion)
{
CantanteFamoso objeto;
objeto = listaDeCantantesF.get(posicion);
objeto.setNombre();
}
public void remplazarDiscoConMasVentasEnObjetoPosicion(int posicion)
{
CantanteFamoso objeto;
objeto = listaDeCantantesF.get(posicion);
objeto.setDiscoConMasVentas();
}
public void eliminarCantanteEnPosicion(int posicion)
{
listaDeCantantesF.remove(posicion);
}
public CantanteFamoso obtenerObjetoEnPosicion(int posicion)
{
return listaDeCantantesF.get(posicion);
}
public int obtenerSizeDeListaDeCantantesF()
{
return listaDeCantantesF.size();
}
}
public class CantanteFamosoCódigo: [Seleccionar]
import java.util.*;
public class CantanteFamoso
{
private String nombre, discoConMasVentas;
public CantanteFamoso(String nombre, String discoConMasVentas)
{
this.nombre = nombre;
this.discoConMasVentas = discoConMasVentas;
}
//Metodos setters
public void setNombre()
{
nombre = entrada();
}
public void setDiscoConMasVentas()
{
discoConMasVentas = entrada();
}
//Metodos getters
public String getNombre()
{
return nombre;
}
public String getDiscoConMasVentas()
{
return discoConMasVentas;
}
//otros metodos
public String entrada()
{
Scanner escaner = new Scanner(System.in);
return escaner.nextLine();
}
}
Salu2!