Java 如何检查每位员工的电子邮件是否与搜索值匹配
我只是想知道如何将用户输入与employee类的内容相匹配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().
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
用于精确匹配(或者至多是标准化匹配)。不确定是否有比通过所有员工循环更好的方法。