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);
}