Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: rubens23 en 02 de Junio 2015, 09:34

Título: Java ArrayList del api. Métodos add, size, remove, añadir y quitar CU00665B
Publicado por: rubens23 en 02 de Junio 2015, 09:34
Clase ArrayList del api Java. Métodos add, size, etc. Concepto de clase genérica o parametrizada.

Clase ListaCantantesFamosos
Código: [Seleccionar]
import java.util.*;
public class ListaCantantesFamosos {
    private String nombreDeLaLista;
    private ArrayList<String> listaDeCantantes;
   
    public ListaCantantesFamosos(String cantante){
        nombreDeLaLista = cantante;
        listaDeCantantes = new ArrayList<String>();
    }
    public void addNombre (String valor_nombre){
        listaDeCantantes.add(valor_nombre);
    }
    public String getNombre (int posicion){
        if (posicion >= 0 && posicion < listaDeCantantes.size()){
            return listaDeCantantes.get(posicion);
        }
        else {
        return "No existe nombre para la posicion solicitada";
    }
    }
    public int getTamaño (){
        return listaDeCantantes.size();
    }
     public void removeNombre (int posicion) {  //Método
        if (posicion >= 0 && posicion < listaDeCantantes.size() ) {
            listaDeCantantes.remove(posicion); }
        else { }
    }
}

Clase Test con main
Código: [Seleccionar]
public class TestListaCantantes{
    public static void main ( String [ ] args ){
        System.out.println("Empezamos el programa");
        ListaCantantesFamosos lista1 = new ListaCantantesFamosos("nombres");
        lista1.addNombre("Juan");
        System.out.println("Nombre del primer cantante ya establecido, es " + lista1.getNombre(0)+ ", ¿deseas cambiarlo?" );
        EntradaDeTeclado respuesta = new EntradaDeTeclado();
        if (respuesta.getEntrada().equals("si")){
            lista1.removeNombre(0);
            System.out.println("Introduzca el nuevo nombre");
            EntradaDeTeclado entrada = new EntradaDeTeclado();
            lista1.addNombre(entrada.getEntrada());
            System.out.println("Introduzca el nombre del segundo cantante");
            EntradaDeTeclado entrada1 = new EntradaDeTeclado();
            System.out.println("Introduza el nombre del tercer cantante");
            EntradaDeTeclado entrada2 = new EntradaDeTeclado();
            lista1.addNombre(entrada1.getEntrada());
            lista1.addNombre(entrada2.getEntrada());
            System.out.println("La lista ha quedado formada por " + lista1.getTamaño() + " cantantes ");
            System.out.println("Nombre del primer cantante es " + lista1.getNombre(0));
            System.out.println("Nombre del segundo cantante es " + lista1.getNombre(1));
            System.out.println("Nombre del tercer cantante es " + lista1.getNombre(2));
        }else{
            System.out.println("Introduzca el nombre del segundo cantante");
            EntradaDeTeclado entrada1 = new EntradaDeTeclado();
            System.out.println("Introduza el nombre del tercer cantante");
            EntradaDeTeclado entrada2 = new EntradaDeTeclado();
            lista1.addNombre(entrada1.getEntrada());
            lista1.addNombre(entrada2.getEntrada());
            System.out.println("La lista ha quedado formada por " + lista1.getTamaño() + " cantantes ");
            System.out.println("Nombre del primer cantante es " + lista1.getNombre(0));
            System.out.println("Nombre del segundo cantante es " + lista1.getNombre(1));
            System.out.println("Nombre del tercer cantante es " + lista1.getNombre(2));
        }
    }
}
Título: Re:Entrega nº65 del curso "Aprender programación Java desde cero" CU00665B
Publicado por: DRANXZ88 en 02 de Junio 2015, 17:17
Parece que tu ejercicios no cumple lo que dice aunque no probé todavía el enunciado dice que la lista ya debe estar cargado con tres nombre de cantante famoso y al final debe cargar dos cantante famoso por teclado y quedaría con 5 nombre de cantante en total y mostrar eso en pantalla para tener una idea mira este ejercicios resuelto.
https://www.aprenderaprogramar.com/foros/index.php?topic=2514.0 (https://www.aprenderaprogramar.com/foros/index.php?topic=2514.0)
Título: Re:Java ArrayList del api. Métodos add, size, remove, añadir y quitar CU00665B
Publicado por: rubens23 en 08 de Junio 2015, 17:33
Ya está corregido.

Clase ListaCantantesFamosos

Código: [Seleccionar]

import java.util.*;
public class ListaCantantesFamosos {

private ArrayList<String> listaDeCantantes;
   
    public ListaCantantesFamosos(){
        listaDeCantantes = new ArrayList<String>();
    }
    public void addNombre (String valor_nombre){
        listaDeCantantes.add(valor_nombre);
    }
    public String getNombre (int posicion){
        if (posicion >= 0 && posicion < listaDeCantantes.size()){
            return listaDeCantantes.get(posicion);
        }
        else {
        return "No existe nombre para la posicion solicitada";
    }
    }
    public int getTamaño (){
        return listaDeCantantes.size();
    }
     public void removeNombre (int posicion) {  //Método
        if (posicion >= 0 && posicion < listaDeCantantes.size() ) {
            listaDeCantantes.remove(posicion); }
        else { }
    }
}

Clase TestListaCantante

Código: [Seleccionar]
public class TestListaCantantes{
    public static void main ( String [ ] args ){
        System.out.println("Empezamos el programa");
        ListaCantantesFamosos lista1 = new ListaCantantesFamosos();
        lista1.addNombre("Juan");
        lista1.addNombre("Ramón");
        lista1.addNombre("Pedro");
        System.out.println("Nombre de los cantantes ya introducidos, son " + lista1.getNombre(0)+", "+ lista1.getNombre(1)+", "+lista1.getNombre(2)+ ", ¿desea añadir alguno más?" );
        EntradaDeTeclado respuesta = new EntradaDeTeclado();
        if (respuesta.getEntrada().equals("si")){
            //lista1.removeNombre(0);
            System.out.println("Introduzca dos nuevos nombres");
            EntradaDeTeclado entrada = new EntradaDeTeclado();
            lista1.addNombre(entrada.getEntrada());
            EntradaDeTeclado entrada1= new EntradaDeTeclado();
            lista1.addNombre(entrada1.getEntrada());
            System.out.println("La lista ha quedado formada por " + lista1.getTamaño() + " cantantes ");
            System.out.println("Nombre del primer cantante es " + lista1.getNombre(0));
            System.out.println("Nombre del segundo cantante es " + lista1.getNombre(1));
            System.out.println("Nombre del tercer cantante es " + lista1.getNombre(2));
            System.out.println("Nombre del cuarto cantante es " + lista1.getNombre(3));
            System.out.println("Nombre del quinto cantante es " +lista1.getNombre(4));
        }else{
            System.out.println("La lista ha quedado formada por " + lista1.getTamaño() + " cantantes ");
            System.out.println("Nombre del primer cantante es " + lista1.getNombre(0));
            System.out.println("Nombre del segundo cantante es " + lista1.getNombre(1));
            System.out.println("Nombre del tercer cantante es " + lista1.getNombre(2));
        }
    }
}
Título: Re:Java ArrayList del api. Métodos add, size, remove, añadir y quitar CU00665B
Publicado por: DRANXZ88 en 08 de Junio 2015, 21:20
Falta corregir mas para que funcione y cumpla lo que dice el ejercicios
tenes que crear un constructor y iniciarla y que contenga tres nombre de cantante 
Código: [Seleccionar]
public String getNombre (int posicion){
        if (posicion >= 0 && posicion < listaDeCantantes.size()){
            return listaDeCantantes.get(posicion);
        }
        else {
        return "No existe nombre para la posicion solicitada";
    }
    }
    public int getTamaño (){
        return listaDeCantantes.size();
    }
     public void removeNombre (int posicion) {  //Método
        if (posicion >= 0 && posicion < listaDeCantantes.size() ) {
            listaDeCantantes.remove(posicion); }
        else { }
    }
este codigo de la posicion ya no es necesario si lo que te pide es cargar dos cantante mas y listarla y mostrar por pantalla

Otra cosa no es mas necesario pedir si quiere cargar nuevo nombre o no al usuario. Directo tiene que pedir que cargue dos nombre y luego de cargar los dos listarta
Una condicion ya no es necesario en el main
Código: [Seleccionar]
if (respuesta.getEntrada().equals("si")){
            //lista1.removeNombre(0);
            System.out.println("Introduzca dos nuevos nombres");
            EntradaDeTeclado entrada = new EntradaDeTeclado();
            lista1.addNombre(entrada.getEntrada());
            EntradaDeTeclado entrada1= new EntradaDeTeclado();
            lista1.addNombre(entrada1.getEntrada());
            System.out.println("La lista ha quedado formada por " + lista1.getTamaño() + " cantantes ");
            System.out.println("Nombre del primer cantante es " + lista1.getNombre(0));
            System.out.println("Nombre del segundo cantante es " + lista1.getNombre(1));
            System.out.println("Nombre del tercer cantante es " + lista1.getNombre(2));
            System.out.println("Nombre del cuarto cantante es " + lista1.getNombre(3));
            System.out.println("Nombre del quinto cantante es " +lista1.getNombre(4));
        }else{
            System.out.println("La lista ha quedado formada por " + lista1.getTamaño() + " cantantes ");
            System.out.println("Nombre del primer cantante es " + lista1.getNombre(0));
            System.out.println("Nombre del segundo cantante es " + lista1.getNombre(1));
            System.out.println("Nombre del tercer cantante es " + lista1.getNombre(2));
        }
    }
Tenes que sacarlo y hacer un metodo para listar
Título: Re:Java ArrayList del api. Métodos add, size, remove, añadir y quitar CU00665B
Publicado por: DRANXZ88 en 08 de Junio 2015, 21:24
Para darte una idea de tu código que modifique
clase para generar teclado
Código: [Seleccionar]
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;
    }

}
aunque podia llamarlo GenerarTeclado
Clase para listar y crear listado de cantante
Código: [Seleccionar]
import java.util.ArrayList;

public class ListaCantantesFamosos {

    private ArrayList<String> listaDeCantantes;

    public ListaCantantesFamosos() {
        this.listaDeCantantes = new ArrayList<String>();
        listaDeCantantes.add("Juan");
        listaDeCantantes.add("Ramón");
        listaDeCantantes.add("Pedro");
    }

    public void addNombre(String valor_nombre) {
        listaDeCantantes.add(valor_nombre);
    }

    public void listarCantantesFamosos() {
        for (int i = 0; i < listaDeCantantes.size(); i++) {
            System.out.println("Cantante Famoso " + (i + 1) + " : " + listaDeCantantes.get(i));
        }
    }
}
clase principal main
Código: [Seleccionar]
public class TestListaCantantes {

    public static void main(String[] args) {
        System.out.println("Empezamos el programa");
        ListaCantantesFamosos lista1 = new ListaCantantesFamosos();
        EntradaDeTeclado entrada = new EntradaDeTeclado();

        System.out.println("Introduzca nuevos nombres de cantante");
        entrada.AgregarCantante();
        lista1.addNombre(entrada.getEntrada());

        System.out.println("Introduzca nuevos nombres de cantante");
        entrada.AgregarCantante();
        lista1.addNombre(entrada.getEntrada());

        lista1.listarCantantesFamosos();

    }

}
Si pode mejorarla este código que te pase sera genial