Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/04/2014, 06:00
xpansul
 
Fecha de Ingreso: abril-2014
Mensajes: 2
Antigüedad: 10 años, 7 meses
Puntos: 0
Problema al acceder a un ArrayList dentro de una clase con atributo ArrayList

Hola buenos dias

El motivo de este mensaje es que estoy haciendo un ArrayList de personas y dentro de la clase persona tengo uno de los atributos otro ArrayList de teléfonos.

Este es el Main
Código:
public static void main(String[] args) {

        ArrayList<Persona> personas = new ArrayList<Persona>();
        String resp = "";
        Scanner sc = new Scanner(System.in);

        do {
            Persona p = new Persona();
            do {
                
                String telefono;
                do
                {
                    System.out.print("Telefono:");
                    telefono = sc.nextLine();
                    
                } while(existeTelefono(personas, telefono));)
                
                p.addTelefono(telefono);
                        
                System.out.print("Mas telefonos? (s/n)");
                resp = sc.nextLine();   
                
            } while(!resp.equals("n"));
            personas.add(p);

            System.out.print("Quieres meter otra persona?(s/n)");
            resp = sc.nextLine();
        } while (!resp.equals("n"));}
    public static boolean existeTelefono(ArrayList<Persona>personas, String telefono){
       
        for (int i = 0; i < personas.size(); i++) {
            for (int j = 0; j < personas.get(i).getTelefono().size();j++) {
                if(personas.get(i).getTelefono().get(j).equals(telefono))
                    return true;
                
            }
        }
        return false;
    
        }
Y este es la clase Persona
Código:
public class Persona {

    private String dni;
    private String nombre;
    private String apellidos;
    private ArrayList<String> telefono;
    private ArrayList<String> email;

    public Persona() {
        telefono = new ArrayList<String>();
        email = new ArrayList<String>();
    }
    
    public String getDni() {
        return dni;
    }

    public void setDni(String dni) {
        this.dni = dni;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public void addTelefono(String telf) {
        telefono.add(telf);
    }

    public ArrayList<String> getTelefono() {
        return telefono;
    }


    public ArrayList<String> getEmail() {
        return email;
    }

    public void addEmail(String e) {
       email.add(e);
    }   
}
El problema es que en el bucle for de comprobar si existe teléfono no entra, pero me devuelve false aunque el teléfono este repetido , no se por que el método boolean existeTelefono no me funciona. Espero que me puedan ayudar. Muchas gracias

He limitado el código solo a esta función aunque me ocurre lo mismo con los email, pero si lo he conseguido hacer con dni en un simple bucle for. El problema es cuando accedo a un for dentro de otro for. No se que estoy haciendo mal. Muchas gracias de nuevo. Agradecería mucho vuestra ayuda

Última edición por xpansul; 07/04/2014 a las 06:56