嘿,我只是想知道在为员工详细信息(例如姓名、年龄地址、出生日期、工资和电子邮件地址)创建商店时,最好使用什么集合。商店需要所有基本要素,例如添加、编辑、删除、全部删除和 searchBy。
3 回答
好吧,您可能想要快速搜索,因此将键作为您要搜索的恶魔的散列结构可能是最佳解决方案。例如,如果要按名称搜索,可以创建这样的类:
public class EmployeeStore {
private Map<String, Employee> employees;
public EmployeeStore() {
employees = new HashMap<String, Employee>();
}
public void add(Employee e) {
employees.add(e.getName(), e);
}
public Employee searchByName(String name) {
return employees.get(name);
}
// etc.
}
employees
并使用数据结构根据您的需要实现所需的方法。如果搜索是按名称完成的,您可以将名称作为键字符串。
不幸的是,通过与索引不同的字段进行搜索将需要线性搜索,如果您有大量条目,这将很慢。
只需为您的员工实体创建一个类,如下所示:
public class Employee
{
String name;
public void setName(String nm)
{
this.name=nm;
}
public String getName()
{
return this.name;
}
//Other variables and associated getter and setters
}
现在您可以创建一个Employee对象的集合:
ArrayList<Employee> employees=new ArrayList<Employee>();
或者您可以使用您想要的任何其他集合。
然后你需要为你想要的方法实现一些逻辑
Update(), Delete()
您应该使用HashMap
orMap
来获得更快的搜索功能!
要使用的特定“最佳”集合将取决于访问需求和数据限制。但是您可以将多个集合封装在一个EmployeeStore
类中,以便以多种方式访问。
例如,如果您需要按姓名搜索,并且可以保证姓名是唯一的,那么Map<String, Employee>
将姓名存储为键可以让您快速找到具有给定姓名的员工。如果不能保证名称是唯一的,您可能需要一个Map<String, List<Employee>>
.
对于基于其他字段的搜索,您可以使用适当的键维护其他映射。
您的add
,remove
和edit
方法的实现当然必须适当地更新您使用的所有地图。
如果您的搜索比简单的按键查找更复杂,或者如果您的数据很大,您可能需要EmployeeStore
使用数据库来支持您,而不仅仅是使用集合。