我正在创建一个EmployeeStore,它将存储名称,Dob,ID,电子邮件地址等...,我需要编写一种编辑方法。我已经用谷歌搜索,但我找不到如何做到这一点的任何人都可以帮助吗?这是我的代码:

//Imports.
import java.util.Scanner;
//********************************************************************
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"));
//Test Code with the new Hashmap.
        /*Store.print();
        Store.clear();
        Store.print();

        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.print();
        Store.remove("Andy Carroll");
        Store.print();*/
//********************************************************************
        //Switch Statement for use of a menu.
         int choice;
            do {
                choice = getMenuChoice("1.\tLibrarian\n2.\tPublic User\n3.\tExit\n\n", 3, "Please enter choice:", "Error [1,3] only");
                switch (choice) {
                    case 1:
                        System.out.println("Librarian Functionality...\n");
                        break;
                    case 2:
                        System.out.println("Public User functionality...\n");

                        break;
                    case 3:
                        System.out.println("Program Finished");

                }
            }
            while (choice != 3);
}
//********************************************************************
      public static int getMenuChoice(String menuString, int limit, String prompt, String errorMessage)
      {
            System.out.println(menuString);
            int choice = inputAndValidateInt(1, limit, prompt, errorMessage);
            return choice;
       }
//********************************************************************



        public static int inputAndValidateInt(int min, int max, String prompt, String errorMessage) {
            int number;
            boolean valid;
            do {
                System.out.print(prompt);
                number = keyboard.nextInt();
                valid = number <= max && number >= min;
                if (!valid) {
                    System.out.println(errorMessage);
                }
            } while (!valid);
            return number;
        }
//********************************************************************
}


//Imports:

//********************************************************************
//Employee Class.
public class Employee
{
//Variables.
    private String employeeName;
    private int employeeId;
    private String employeeEmail;
//********************************************************************
//Constructor.
    public Employee(String employeeName, int employeeId, String employeeEmail)
    {
        this.employeeName = employeeName;
        this.employeeId = employeeId;
        this.employeeEmail = employeeEmail;
    }
//********************************************************************
//Getters.
    public String getEmployeeEmail() {
        return employeeEmail;
    }
    public void setEmployeeEmail(String employeeEmail) {
        this.employeeEmail = employeeEmail;
    }
    public String getEmployeeName() {
        return employeeName;
    }
    public int getEmployeeId() {
        return employeeId;
    }
//********************************************************************
//toString method.
    public String toString() {
        return "Employee [employeeName=" + employeeName + ", employeeId="
                + employeeId + ", employeeEmail=" + employeeEmail + "]";
    }
//********************************************************************





}
//Imports.
import java.util.HashMap;
//********************************************************************
import java.util.Map;

public class EmployeeStore
{
    HashMap<String, Employee> map;

//Constructor.
    public EmployeeStore()
    {
        map = new HashMap<String,Employee>();
    }
//********************************************************************
//Hashmap Methods.
//Add to the Hashmap : Employee.
    public void add(Employee obj)
    {

        map.put(obj.getEmployeeName(), obj);
    }
//********************************************************************
//Remove from the Hashmap : Employee.
    public void remove(String key)
    {
      //Remove the Employee by name.
        map.remove(key);
    }
//********************************************************************
//Clear the Hashmap : Employee.
    public void clear()
    {
        map.clear();
    }
    //********************************************************************
//Print the Hashmap : Employee.
    public void print()
    {
        System.out.println("\n********Employee's in the Company.********");
        for (Employee employee : map.values())
        {
            System.out.println("Employee Name:\t" + employee.getEmployeeName());
            System.out.println("Employee Id:\t" + employee.getEmployeeId());
            System.out.println("E-mail:\t"+ employee.getEmployeeEmail());
        }

    }


//********************************************************************
//********************************************************************


}

最佳答案

您需要从HashMap中获取Employee对象,然后修改该对象。例如,要更改电子邮件:

//in class EmployeeStore
String email = somehowGetNewEmail();
Employee toEdit = map.get(somehowGetName());
toEdit.setEmail(email)


交替:

//in EmployeeStore
public Employee get(String name){
    return map.get(name);
}

//in any class with reference to an EmployeeStore "store"
store.get(name).editSomething(something);

07-26 08:48