Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/07/2013, 02:54
ovidiufratila89
 
Fecha de Ingreso: marzo-2013
Ubicación: Alcalá de Henares
Mensajes: 11
Antigüedad: 11 años, 8 meses
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?