[英]Set<T> within a Map<K,V> in Java
我想知道是否可以將Set成員添加為類的成員變量,然后可以將其對象作為值放入Map中。
我的想法是將HashSet<T> projects
用作我的雇員類的成員變量。 但是,我想對數據庫執行查詢,該查詢將以Map>項的形式返回查詢結果,其中int將是employeeId,而Set將是項目。 完全可行嗎?
這絕對是可行的。 看來您正在實現員工與項目之間的多對多關系。 這將與帶有連接表的連接表的一對表相對應。
您將閱讀您的員工和您的項目,然后將項目添加到每個員工集中。
我應該提到, 將集合公開為成員變量不是一個好主意,因為集合是可變的。 您可以將變量設為私有,並公開方法以從對象中添加/查詢項目。
試試這個
class Project{
int pid;
int name;
//Getter and setter
}
創建員工類
public class Employee {
int employeeId;
String name;
Set<Project> projects;
//getter , setter or add methods
}
現在您可以在DAO中使用以上兩個類
public class EmployeesDao{
/* Get multiple employee-projects */
public Map<Integer, Set<Project>> getManyEmployeeAndProjects(){
Map<Integer, Set<Project>> emps = new HashMap<Integer, Set<Project>>();
//query and populate
return emps;
}
/**
* Get single employee
*/
public Employee getEmployee(){
//Query and return Employee
return new Employee();
}
}
話雖這么說,我認為您可能只需要雇員的退貨清單,因為雇員將擁有雇員編號和項目
public List<Employee> getEmployees(){
//create list of Employee object
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.