嘿,我只是想知道什么是最好的收集使用时创建一个员工的详细信息,如姓名,年龄地址,dob,工资和电子邮件地址的商店。该商店需要所有必要的基本功能,例如添加,编辑,删除,删除所有和searchBy。Java集合。一个员工店收集
1
A
回答
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
数据结构您的需求所需的方法。如果搜索是按名称完成的,则可以将该名称作为密钥字符串。
不幸的是,如果您有大量条目,则通过与索引不同的字段进行搜索需要进行线性搜索,速度会很慢。
2
只需创建一个类像下面的东西你的员工实体:
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
}
现在你可以创建员工对象的集合:
ArrayList<Employee> employees=new ArrayList<Employee>();
或者你可以使用任何其他集合你想。
然后,你需要实现你想你应该使用HashMap
或Map
更快的搜索能力的方法,如
Update(), Delete()
一些逻辑!
1
要使用的特定“最佳”集合取决于访问需求和数据约束。但是您可以将多个集合封装在单个EmployeeStore
类中,以多种方式进行访问。
如果您需要通过名称进行搜索,并且可以保证名称是唯一的,则将名称存储为键的Map<String, Employee>
可以让您快速找到具有给定名称的员工。如果名称不能保证是唯一的,则可能需要使用Map<String, List<Employee>>
。
对于基于其他字段的搜索,您可以使用适当的键维护其他地图。
您的add
,remove
和edit
方法的实现当然必须更新您使用的所有地图。
如果您的搜索比按键简单查找更复杂,或者您的数据很大,您可能需要将数据库备份到EmployeeStore
而不是使用集合。
相关问题
- 1. Java集合和垃圾收集
- 2. Java:通过引用收集集合的任意集合
- 3. Java收藏集:哪个集合使用什么时候?
- 4. 一个laravel收集
- 5. 如何收集特定的行ID在一个表 - webdriver的使用Java集合
- 6. 的Java 8拉姆达 - 过滤器收集的另一个集合
- 7. 将一个集合划分成更小的集合 - Java
- 8. 排序MongoDB收集并保存到另一个集合
- 9. Doctrine2 /传递集合元素到另一个收集
- 10. 调用收集()上产生一个空的集合
- 11. 的MongoDB - MapReduce的一个集合到第二收集
- 12. 集合的成员?
- 13. 集合中的一个集合
- 14. 追加另一个集合Laravel集合
- 15. 集合集合中的唯一集合
- 16. 使用集合捕获员工时间
- 17. Firebase数据收集与唯一成员
- 18. 未知收集成员
- 19. Java泛型和集合集
- 20. Java EE 6集群集合
- 21. 垃圾收集java
- 22. Java垃圾收集
- 23. Java垃圾收集
- 24. Java收集和MapKey
- 25. Java:在ibatis中迭代一个集合
- 26. 同步读取到一个java集合
- 27. java - 使用集合对员工姓名列表进行排序
- 28. 联合,交集和设置差异的Java收集方法
- 29. 辛格尔顿在Java中对象的集合,垃圾收集
- 30. 如何在Java中收集对象集合中的变量
您期望的员工数量是多少? – Ian