Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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 员工存储的编辑方法。(使用Hashmap)_Java_Methods_Hashmap_Edit - Fatal编程技术网

Java 员工存储的编辑方法。(使用Hashmap)

Java 员工存储的编辑方法。(使用Hashmap),java,methods,hashmap,edit,Java,Methods,Hashmap,Edit,嘿,谁能帮我理解如何为我的公司应用程序执行编辑方法。我以前曾请求过有关搜索方法的帮助。我认为编辑方法可能包括搜索方法 这是我的密码: EmployeeStore. //Imports. import java.util.HashMap; //******************************************************************** public class EmployeeStore { HashMap<String, Employe

嘿,谁能帮我理解如何为我的公司应用程序执行编辑方法。我以前曾请求过有关搜索方法的帮助。我认为编辑方法可能包括搜索方法

这是我的密码:

EmployeeStore.

//Imports.
import java.util.HashMap;
//********************************************************************
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 employee)
    {

        map.put(employee.getEmployeeName(), employee);
    }
//********************************************************************
//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); to print the toString of Employee class
            //or:
            System.out.println("Employee Name:\t" + employee.getEmployeeName());
            System.out.println("Employee Id:\t" + employee.getEmployeeId());
            System.out.println("E-mail:\t"+ employee.getEmployeeEmail());
        }

    }
    public Employee get(String name){
        return map.get(name);
    }
    /*public void searchByName ()
    {
        //(for(Employee e : map.values()) {...}) 
        //and check for each employee if his/her email matches the searched value
        for(Employee e : map.values())
        {
            System.out.println(e);
            map.equals(getClass());

        }
    }*/
//********************************************************************
    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()))
            {
                System.out.println(employee);
                return employee;
            }
        }
        return null;
    }
//********************************************************************





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


}

您也可以使用java HashMap的put方法来实现这一点

如果映射以前包含此键的映射,则替换旧值

比如说:

public void edit(Employee employee)
{
    map.put(employee.getEmployeeName(), employee);
}
然后在另一个代码中:

Employee employee = getEmployeeByName("Someniceemployeename");
if (employee != null)
{
    employee.setEmployeeEmail("awesomeness@stackoverflow.com");
    edit(employee);
}

至于编辑员工的ID,您需要采取一些额外的预防措施。首先,您要确保映射包含要编辑的ID(与往常一样)。第二,在“编辑”ID时,您需要首先从映射中删除旧员工实例(使用旧ID),然后使用put添加新员工。

您想按emp名称还是按emp对象进行编辑?您所说的“编辑方法”是什么意思?允许您更改以前存储的员工实例的方法?抱歉。是,我想编辑姓名、id和电子邮件。如果您正在编辑id或电子邮件(这不是地图的键),只要您更新
员工
对象的那些字段,就不需要更新地图。如果您正在输入姓名,则必须删除带有旧员工姓名的条目,并在地图中插入一个新条目更新ID。我将代码保留了下来,以便进行一些练习。:)哈哈,谢谢。我没想到会这么容易,我总是把java复杂化。
Employee employee = getEmployeeByName("Someniceemployeename");
if (employee != null)
{
    employee.setEmployeeEmail("awesomeness@stackoverflow.com");
    edit(employee);
}