Foros del Web » Programación para mayores de 30 ;) » Java »

Buscar dentro de un arrayList

Estas en el tema de Buscar dentro de un arrayList en el foro de Java en Foros del Web. Buenos días. Aver si me podeis ayudar con esta práctica. Tengo que dar de alta unos empleados y tal. Tengo una clase llamada empleados que ...
  #1 (permalink)  
Antiguo 01/07/2013, 02:54
 
Fecha de Ingreso: marzo-2013
Ubicación: Alcalá de Henares
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Buscar dentro de un arrayList

Buenos días.

Aver si me podeis ayudar con esta práctica.

Tengo que dar de alta unos empleados y tal. Tengo una clase llamada empleados que contiene los datos del empleado con su tipico set y get. Algo asi es el contructor:
Código PHP:
    public Empleados(String codigoString passwordString nombre){
        
this.codigo=codigo;
        
this.password=password;
        
this.nombre=nombre;
    } 
Estos empleados los tengo que guardar para poder usarlos posteriormente en el acceso a una aplicacion, por lo tanto añado a un Array List:

Código PHP:
 private static ArrayList<Empleadosempleados = new ArrayList<Empleados>();
 
 private static 
Empleados empleobj;
 

    public static 
boolean altaEmpleados(Empleados empleobj) {
        if (!
empleados.contains(empleobj)) {
            
empleados.add(empleobj);
            return 
true;
        } else {
            return 
false;
        }

    }

    
    
//consulta persona por la posición dentro del ArrayList
    
public static Empleados consultaEmpleados(int indice) {
        
empleobj empleados.get(indice);
        return 
empleobj;
    }
    
    
    
//Consulta persona usuario devolucion posicion
    
        
public static Empleados consultaPersonaPorUsuario(String usuario) {
        
//Comparador para ordenar las personas por su código
                 
        
Comparator CodigoComp = new Comparator() {

            public 
int compare(Object o1Object o2) {
                
Empleados e1 = (Empleadoso1;
                
Empleados e2 = (Empleadoso2;
                return 
e1.getCodigo().compareTo(e2.getCodigo());
            }
        };
        
//Ordenamos el array
        
Collections.sort(empleadosCodigoComp);
        
/*//creamos una persona con el dni a buscar
        Comparator NomPerComp = new Comparator() {

            public int compare(Object o1, Object o2) {
                Empleados e1 = (Empleados) o1;
                Empleados e2 = (Empleados) o2;
                return e1.getCodigo().compareTo(e2.getCodigo());
            }
        };
        //Ordenamos el array
        Collections.sort(empleados, NomPerComp);*/
        
        //creamos una persona con el nombre a buscar
        
Empleados e = new Empleados();
        
e.setNombre(usuario);
        
int pos Collections.binarySearch(empleadoseCodigoComp);
        if (
pos >= 0) {
            
empleobj empleados.get(pos);
        } else {
            
empleobj null;
        }

        return 
empleobj;
    }
        
        
    


Tengo un main de prueba para ver que funciona las cosas:

añado 2 empleados al Arraylist y tal, todo bien pero al usar el metodo de buscar que me devuelve la posicion del empleado me sale este error:

Exception in thread "main" java.lang.NullPointerException
at java.lang.String.compareTo(String.java:1139)
at proyectoextraordinario.UtilEmpleados$2.compare(Uti lEmpleados.java:74)
at java.util.Collections.indexedBinarySearch(Collecti ons.java:377)
at java.util.Collections.binarySearch(Collections.jav a:365)
at proyectoextraordinario.UtilEmpleados.consultaPerso naPorUsuario(UtilEmpleados.java:94)
at proyectoextraordinario.Prueba.main(Prueba.java:55)
Java Result: 1


Lo invoco asi:

System.out.println(UtilEmpleados.consultaPersonaPo rUsuario(us));
Donde us es un objeto empleado.
Que estoy haciendo mal?
  #2 (permalink)  
Antiguo 01/07/2013, 04:11
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Buscar dentro de un arrayList

Si creas un compareTo que utiliza la propiedad Codigo, ¿por qué cuando creas el elemento a buscar sólo rellenas el nombre?. O setNombre y getCodigo están relacionadas internamente, o estás pasando un elemento con codigo = null e intentando aplicarle el compareTo.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 01/07/2013, 08:09
 
Fecha de Ingreso: marzo-2013
Ubicación: Alcalá de Henares
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Buscar dentro de un arrayList

Cierto es. Tenia un error, ponia getCodigo, en vez de getNombre. Gracias.

Etiquetas: arraylist, clase, metodo, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:19.