0

EmployeeStore名前、ID、電子メールなど、会社の従業員の詳細を保存するクラスがあります。従業員の電子メール アドレスでハッシュマップを検索し、一致するアドレスを持つ個々の従業員を出力する方法が必要です。

別の回答でマップを検索するコードを取得しましたが、従業員を印刷できません。

これが私のコードです:

public class EmployeeStore {

    HashMap<String, Employee> map;

    public EmployeeStore() {
        map = new HashMap<String, Employee>();
    }

    //....

    public void add(Employee employee) {
        map.put(employee.getEmployeeName(), employee);
    }

    public Employee searchByName(String name) {
        Employee employee = map.get(name);    
        System.out.println(employee);
        return employee;
    }

    public Employee searchByEmail(String email) {
        for (Employee employee : map.values()) {
            if (email.equals(employee.getEmployeeEmail())) {
                return employee;
            }
            System.out.println(employee);
        }
        Employee employee = map.get(email);
        System.out.println(employee);

        return employee;
    }
}

これを行うために、コードを次のように変更しました。

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


        return null;
    }

主要:

public class MainApp {

    private static Scanner keyboard = new Scanner(System.in);

    public static void main(String[] args) {
        new MainApp().start();
    }

    public void start() {
        EmployeeStore Store = new EmployeeStore();
        Store.add(new Employee("James O' Carroll", 18, "hotmail.com"));

        Store.add(new Employee("Andy Carroll", 1171, "yahoo.com"));

        Store.add(new Employee("Luis Suarez", 7, "gmail.com"));
        Store.searchByName("James O' Carroll");
        //Store.print();
    }
}
4

1 に答える 1

1

メソッドsearchByxxxは を返すEmployeeので、その値を読み取る必要があります。その後、簡単に出力できます。

Employee james = Store.searchByName("James O' Carroll");
Employee andy = Store.searchByEmail("yahoo.com");

System.out.println(james);
System.out.println(andy);

searchByXXXメソッドを少しきれいにして、不要な print ステートメントを削除する必要があります。

于 2012-07-02T16:13:31.747 に答える