searchByEmail方法不起作用

时间:2012-07-21 12:48:02

标签: java search hashmap

这个方法有问题。当用户请求时,它不会输出正确的搜索。

这是我的代码:

System.out.println("Search by Email.");
Employee employeeSearchEmail = MenuMethods.userInputByEmail();
Store.searchByEmail(employeeSearchEmail.getEmployeeEmail());

public Employee searchByEmail(String employeeEmail) {
    for (Employee employee : map.values()) {
        System.out.println(employee);
        map.equals(getClass());
        map.equals(employee.getEmployeeEmail());
        employee = new Employee(employeeEmail);
        ;
        return employee;
    }
    return null;
}

public static Employee userInputByEmail() {
    // String temp is for some reason needed. If it is not included
    // The code will not execute properly.
    String temp = keyboard.nextLine();
    Employee e = null;
    System.out.println("Please enter the Employee Email:");
    String employeeEmail = keyboard.nextLine();
    // This can use the employeeName's constructor because java accepts the
    // parameters instead
    // of the name's.
    return e = new Employee(employeeEmail);

}

3 个答案:

答案 0 :(得分:1)

问题是程序中没有if条件,如下所示:

public Employee searchByEmail(String employeeEmail) {
        for (Employee employee : map.values()) {
            map.equals(getClass());
            if (map.equals(employee.getEmployeeEmail())){
                System.out.println(employee);
                return employee;
            }
        }
        return null;
    }

这一行:     的System.out.println(雇员);

它将打印员工对象,直到找到匹配为止,匹配时它将返回该员工对象..

答案 1 :(得分:0)

你应该这样说

if(employeeEmail.equals(employee.getEmployeeEmail()) return employee; 

无需创建Employee对象的新实例。

答案 2 :(得分:0)

您希望退回具有特定电子邮件地址的员工。因此,只有当前员工的电子邮件地址等于给定的电子邮件地址时,您才应该返回:

 public Employee searchByEmail(String employeeEmail) 
    {
            for(Employee employee : map.values())
            {
                if(employee.getEmployeeEmail().equalsIgnoreCase(employeeEmail.trim()))
                          return employee;
            }
            return null;
    }

顺便说一下,地图的关键是什么。如果电子邮件地址是键,您只需返回:

   return map.get(employeeEmail);