Cómo verificar para cada empleado si su correo electrónico coincide con el valor buscado

Solo me preguntaba cómo haría coincidir la entrada del usuario con el contenido de la clase de empleado.

public void searchByName ()
{
    //and check for each employee if his/her email matches the searched value
    for(Employee e : map.values())
    {
        System.out.println(e); //Will print out Employee toString().
    }
}

preguntado el 30 de junio de 12 a las 16:06

¿Qué tipo de entrada de búsqueda? ¿Y a qué apunta la entrada de búsqueda (correo electrónico? ¿nombre?)? -

bueno, para este método en particular estaría buscando employeeName. -

Map es para la coincidencia exacta (o, como máximo, la coincidencia normalizada). No estoy seguro de si hay algún método mejor que recorrer a todos los empleados. -

1 Respuestas

No entiendo por qué está usando un Mapa de empleados, pero asumiendo que su dirección de correo electrónico está almacenada como un objeto String dentro de su clase de Empleado, con el captador apropiado getEmail(), entonces el código se vería así:

public Employee findEmail( String email )
{
    for( Employee e : map.values() )
    {
        if( email.equals( e.getEmail() ) )
            return e;
    }
    return null;
}

Sin embargo, este código no es muy eficiente, ya que tendrá que pasar por cada Empleado en su Mapa.

Sin embargo, si su Mapa contiene una asignación de direcciones de correo electrónico a Empleados, entonces puede asociar muy rápidamente al Empleado con una dirección de correo electrónico usando el Mapa. get( Object key ) método:

Employee emp = map.get( "someone@somedomain.com" );

if( emp != null )
    System.out.println( "Employee with that email address is " + emp );
else
    System.out.println( "No Employee with that email address." );

Espero que esto ayude. Como nota al margen, publicar más código (como su clase de empleado) definitivamente ayudaría a que las soluciones sean más precisas y útiles.

Respondido el 30 de junio de 12 a las 16:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.