簡體   English   中英

組 <T> 在地圖內 <K,V> 在Java中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM