我从数据库中获取Employee DOB
和Department name
。然后我正在处理DOB
以使用年龄。
Map<String,ArrayList<Integer>> emp = new HashMap<String,ArrayList<Integer>>()
while(rs.next()){
//rs is resultset of DB Query
String dob = rs.getString(1);
//Calculating age in variable age
age = age of employee from DOB
emp = addIntoMap(emp,rs.getString(2),age);
}
public Map<String, List<Integer>> addIntoMap(Map<String, List<Integer>> emp, String key, Integer value) {
List<Integer> list = emp.get(key);
if (list == null) {
list = new ArrayList<Integer>();
emp.put(key, list);
}
list.add(value);
return emp;
}
现在我想构造类型为<Department_Name,ArrayList<Age of emplyees>>
的HashMap。这里dperamtnet_name是关键,我想要每个键的员工年龄列表
我知道使用Map<String,ArrayList<Integer>> emp = new HashMap<String,ArrayList<Integer>>()
我可以构建一个多哈希图,但是如何为每个密钥设置年龄值?
答案 0 :(得分:1)
创建自己的方法以在地图中添加元素:
public void addIntoMap(Map<String, List<Integer>> emp, String key, Integer value) {
List<Integer> list = emp.get(key);
if (list == null) {
list = new ArrayList<Integer>();
emp.put(key, list);
}
list.add(value);
}
如果您不想/需要处理这些问题,请使用Guava中的MultiMap
。