嘿,我只是想知道什麼是最好的收集使用時創建一個員工的詳細信息,如姓名,年齡地址,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. Linq遍歷一個集合並向其成員添加另一個集合
- 5. java中收集
- 6. 一個laravel收集
- 7. 如何收集特定的行ID在一個表 - webdriver的使用Java集合
- 8. 的Java 8拉姆達 - 過濾器收集的另一個集合
- 9. 將一個集合劃分成更小的集合 - Java
- 10. 遍歷Java中的集合(一個C++程序員)
- 11. 集合的成員?
- 12. 排序MongoDB收集並保存到另一個集合
- 13. 骨幹:從另一個集合中分片收集
- 14. Doctrine2 /傳遞集合元素到另一個收集
- 15. 調用收集()上產生一個空的集合
- 16. 的MongoDB - MapReduce的一個集合到第二收集
- 17. 刪除整個voltrb商店集合
- 18. 追加另一個集合Laravel集合
- 19. 集合中的一個集合
- 20. Java集合#明確回收內存
- 21. Java的垃圾回收和集合
- 22. 集合集合中的唯一集合
- 23. 使用集合捕獲員工時間
- 24. Firebase數據收集與唯一成員
- 25. 未知收集成員
- 26. NSArray的收集操作員
- 27. Java集合映射到集
- 28. Java EE 6集羣集合
- 29. Java泛型和集合集
- 30. 垃圾收集java
您期望的員工數量是多少? – Ian