如果他/她的电子邮件与搜索到的值匹配,如何检查每个员工

时间:2012-06-30 15:25:53

标签: java hashmap

只是想知道如何将用户输入与员工类的内容相匹配。

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().
    }
}

1 个答案:

答案 0 :(得分:1)

我不明白你为什么使用员工地图,但假设你的电子邮件地址作为一个String对象存储在你的Employee类中,并使用适当的getter getEmail(),那么代码看起来就像像这样的东西:

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

这段代码效率不高,因为它必须循环遍历地图中的每个员工。

但是,如果您的地图包含电子邮件地址与员工的映射,那么您可以使用地图的get( Object key )方法快速获取与电子邮件地址关联的员工:

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." );

我希望这会有所帮助。作为旁注,发布更多代码(例如您的Employee类)肯定有助于使解决方案更加准确和有用。