Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查每位员工的电子邮件是否与搜索值匹配_Java_Hashmap - Fatal编程技术网

Java 如何检查每位员工的电子邮件是否与搜索值匹配

Java 如何检查每位员工的电子邮件是否与搜索值匹配,java,hashmap,Java,Hashmap,我只是想知道如何将用户输入与employee类的内容相匹配 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().

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

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

我不明白您为什么要使用员工映射,但假设您的电子邮件地址作为字符串对象存储在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." );

我希望这有帮助。作为补充说明,发布更多代码(例如您的员工类)肯定会有助于使解决方案更准确、更有用。

什么样的搜索输入?搜索输入的目标是什么(email?name?)?对于这个特定的方法,它将查找employeeName。
Map
用于精确匹配(或者至多是标准化匹配)。不确定是否有比通过所有员工循环更好的方法。