1
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / Clase ArrayList del api Java. Ejercicio CU00665B
« en: 27 de Julio 2023, 18:07 »
Dejo aquí mi solución a este ejercicio.
He usado la clase EntradaDeTeclado:
El código de la clase ListaCantantesFamosos:
Y finalmente adjunto el main
Gracias por vuestros comentarios.
He usado la clase EntradaDeTeclado:
Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
// Definimos una clase EntradaDeTeclado
public class EntradaDeTeclado {
private String entradaTeclado; //Variable de instancia (campo) de la clase
public EntradaDeTeclado () { //Constructor
entradaTeclado="";
pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
} //Cierre del constructor
public void pedirEntrada () { //Método de la clase
Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado = entradaEscaner.nextLine (); } //Cierre del método pedirEntrada
public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
public String getPrimeraPalabra () {
for (int i=0; i < entradaTeclado.length() - 1; i++) {
if (entradaTeclado.substring (i, i+1).equals(" ") ) { //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
return entradaTeclado.substring(0, i+1); }
}
return entradaTeclado; //Caso de que no se detecte ningún espacio devolvemos lo que haya
} //Cierre del método getPrimeraPalabra
public int getLongitud () { //Método de la clase
return entradaTeclado.length();
} //Cierre del método getLongitud
} //Cierre de la clase
El código de la clase ListaCantantesFamosos:
Código: [Seleccionar]
import java.util.ArrayList;
//Esta clase representa una lista de nombres manejada con la clase ArrayList de Java
public class ListaCantantesFamosos {
private String nombreDeLaLista; //Establecemos un atributo nombre de la lista
private ArrayList<String> listaDeCantantes; //Declaramos un ArrayList que contiene objetos String
public ListaCantantesFamosos (String nombre){ //Constructor: crea una lista de nombres vacía
String nombreDeLaLista = nombre;
listaDeCantantes = new ArrayList<String>(); //Creamos el objeto de tipo ArrayList
listaDeCantantes.add ("Julio Iglesias");
listaDeCantantes.add ("Paco Ibáñez");
listaDeCantantes.add ("Luis Guerra");
} //Cierre del constructor
public void addCantante (String nuevoCantante) { listaDeCantantes.add (nuevoCantante); } //Cierre del método
public String getCantante (int posicion) { //Método
if (posicion >= 0 && posicion < listaDeCantantes.size() ) {
return listaDeCantantes.get(posicion); }
else { return "No existe cantante para la posición solicitada";}
} //Cierre del método
public int getTamaño () { return listaDeCantantes.size(); } //Cierre del método
public void removeCantante (int posicion) { //Método
if (posicion >= 0 && posicion < listaDeCantantes.size() ) {
listaDeCantantes.remove(posicion); }
else { } //else vacío. No existe nombre para la posición solicitada, no se ejecuta ninguna instrucción
} //Cierre del método removeNombre
} //Cierre de la clase
Y finalmente adjunto el main
Código: [Seleccionar]
public class TestListaCantantesFamosos {
public static void main (String [ ] args) {
System.out.println ("Empezamos el programa");
System.out.println ("Por favor introduzca el nombre de un cantante famoso a añadir en la lista:"); EntradaDeTeclado entrada1 = new EntradaDeTeclado();
System.out.println ("Por favor introduzca el nombre de otro cantante famoso a añadir a la lista:"); EntradaDeTeclado entrada2 = new EntradaDeTeclado();
System.out.println ("Gracias, estos dos nombres de cantantes famosos se van a añadir a la lista de Cantantes Famosos");
ListaCantantesFamosos lista1 = new ListaCantantesFamosos("Cantantes Famosos");
lista1.addCantante (entrada1.getEntrada() );
lista1.addCantante (entrada2.getEntrada() );
System.out.println ("La lista ha quedado formada por " + lista1.getTamaño() + " elementos");
int j = lista1.getTamaño();
int i=0;
while (j>0){System.out.println ("Elemento "+ (i+1) +" : " + lista1.getCantante(i) );
i+=1;
j-=1;
}
}
Gracias por vuestros comentarios.