Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: el_calderas en 02 de Marzo 2015, 08:34

Título: Ejercicio CU00667B curso Java: cannot find symbol- class ArrayList
Publicado por: el_calderas en 02 de Marzo 2015, 08:34
Hola,

Tengo un problema con este ejercicio. Me sale el error 'cannot find symbol- class ArrayList' en la clase ListaCantantesFamosos:

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;

public class ListaCantantesFamosos
{
    private ArrayList<CantanteFamoso>listaCantantesFamosos; //declaramos un ArrayList que contiene objetos tipo cantanteFamoso
    private String nombre;//establecemos o declaramos un atributo nombre de la lista

    public ListaCantantesFamosos(String valor_nombre){
        nombre=valor_nombre;
        listaCantantesFamosos=new Arraylist<CantanteFamoso>();//creamos un objeto ArrayList, listaCantantesFamosos, que contiene objetos tipo cantanteFamoso
    }

    public void addCantante(CantanteFamoso valor_nombre){
        listaCantantesFamosos.add(valor_nombre);
    }
}

La clase CantanteFamoso es :
Código: [Seleccionar]
public class CantanteFamoso
{
    private String nombre;
    private String discoConMasVentas;
   
    public CantanteFamoso(String valor_nombre, String valor_disco){
        nombre=valor_nombre;
        discoConMasVentas=valor_disco;
    }
}

No consigo ver porque me sale el error.

Si me podeis ayudar.

Muchas gracias.
Título: Re:Ejercicio CU00667B curso Java: cannot find symbol- class ArayList
Publicado por: César Krall en 02 de Marzo 2015, 09:15
Hola tienes mal escrito esto listaCantantesFamosos=new Arraylist<CantanteFamoso>();

Cuando debe ser listaCantantesFamosos=new ArrayList<CantanteFamoso>();

Es decir la ele de ArrayList es mayúscula, no minúscula.

Saludos!
Título: Re:Ejercicio CU00667B curso Java: cannot find symbol- class ArrayList
Publicado por: el_calderas en 05 de Marzo 2015, 16:25
Muchas gracias, sabia que era una tonteria pero es de esos errores que por mucho que lo repases no ves...
Pues aqui esta mi solución para este ejercicio.
Como siempre, agradezco sujerencias para mejorar el codigo.

Clase ListaCantantesFamosos:

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class ListaCantantesFamosos
{
    private ArrayList<CantanteFamoso>listaCantantesFamosos; //declaramos un ArrayList que contiene objetos tipo cantanteFamoso
    private String nombre;//establecemos o declaramos un atributo nombre de la lista

    public ListaCantantesFamosos(String valor_nombre){
        nombre=valor_nombre;
        listaCantantesFamosos=new ArrayList<CantanteFamoso>();//creamos un objeto ArrayList, listaCantantesFamosos, que contiene objetos tipo cantanteFamoso
    }

    public void addCantante(CantanteFamoso valor_nombre){
        listaCantantesFamosos.add(valor_nombre);
    }
   
    public void listar(){
        Iterator<CantanteFamoso>it=listaCantantesFamosos.iterator();//creamos la copia creando un objeto iterator
        CantanteFamoso tmpCantanteFamoso=new CantanteFamoso("","");//creamos el objeto CantanteFamoso temporal para guardar el que saquemos de la lista
        while(it.hasNext()){//devuelve true si el objeto no es el  ultimo de la collección
            tmpCantanteFamoso=it.next();//sacamos de la lista un objeto CantanteFamoso, el metodo next() ha avanzado ya al siguiente elemento...
            System.out.println("Cantante: "+ tmpCantanteFamoso.getCantante());
            System.out.println("Disco mas vendido: "+ tmpCantanteFamoso.getDisco());
        }
    }
    public void introducirNuevoCantante(){
        System.out.println("Por favor, introduzca otro cantante: \nNombre:");
        Scanner sc=new Scanner(System.in);
        String entradaNombre=sc.nextLine();
        System.out.println("Disco:");
        String entradaDisco=sc.nextLine();
        CantanteFamoso newCantante3=new CantanteFamoso(entradaNombre,entradaDisco);
        listaCantantesFamosos.add(newCantante3);
        System.out.println("La lista actualizada contiene los siguientes nombres");
        listar();
    }
   
       
}

clase CantanteFamoso:

Código: [Seleccionar]
public class CantanteFamoso
{
    private String nombre;
    private String discoConMasVentas;

    public CantanteFamoso(String valor_nombre, String valor_disco){
        nombre=valor_nombre;
        discoConMasVentas=valor_disco;
    }

    public void setCantante(String valor_nombre){
        nombre=valor_nombre;
    }

    public String getCantante(){
        return nombre;
    }

    public void setDisco(String valor_disco){
        discoConMasVentas=valor_disco;
    }

    public String getDisco(){
        return discoConMasVentas;
    }

}

y clase TextListaCantantesFamosos:

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class TextListaCantantesFamosos
{
    public static void main(String[]arg){
        ListaCantantesFamosos lista=new ListaCantantesFamosos("lista");//creamos un objeto ArrayList
        CantanteFamoso newCantante1=new CantanteFamoso("Madonna","no se");//creamos un objeto tipo CantanteFamoso
        CantanteFamoso newCantante2=new CantanteFamoso("BonJovi","puede ser..");//creamos un objeto tipo CantanteFamoso
        lista.addCantante(newCantante1);
        lista.addCantante(newCantante2);


        System.out.println("La lista inicial contiene los siguientes nombres");
        lista.listar();

        lista.introducirNuevoCantante();

        boolean aux=true;
        while(aux==true){

            System.out.println("¿Desea introducir otro cantante (S/N)?");
            Scanner sc=new Scanner(System.in);
            String decision=sc.nextLine();
            if(decision.equalsIgnoreCase("S")){
                lista.introducirNuevoCantante();
                aux=true;
            }else{
                aux=false;
            }

        }
    }
}

Un saludo.