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