如何在Java中使用单个键的值列表形成Hashmap
我正在从数据库中获取如何在Java中使用单个键的值列表形成Hashmap,java,hashmap,Java,Hashmap,我正在从数据库中获取员工DOB和部门名称。然后,我正在处理DOB以获得年龄 Map<String,ArrayList<Integer>> emp = new HashMap<String,ArrayList<Integer>>() while(rs.next()){ //rs is resultset of DB Query String dob
员工DOB
和部门名称
。然后,我正在处理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;
}
Map emp=new HashMap()
while(rs.next()){
//rs是数据库查询的结果集
字符串dob=rs.getString(1);
//在可变年龄中计算年龄
年龄=DOB员工的年龄
emp=附加映射(emp,rs.getString(2),年龄);
}
公共映射addIntoMap(映射emp、字符串键、整数值){
列表=emp.get(键);
if(list==null){
列表=新的ArrayList();
emp.put(键、列表);
}
列表。添加(值);
返回emp;
}
现在我想构造类型为
的HashMap。这里的dperamtnet_名称是关键,对于每个关键,我想要员工年龄列表
我知道使用
Map emp=new HashMap()
我可以构建一个多HashMap,但是如何为每个键设置年龄值?创建自己的方法来添加映射中的元素:
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);
}
public void addIntoMap(映射emp、字符串键、整数值){
列表=emp.get(键);
if(list==null){
列表=新的ArrayList();
emp.put(键、列表);
}
列表。添加(值);
}
如果您不想/不需要处理这些问题,请使用Guava。innerMap是打字错误吗?你是说
emp
?@Joffrey code修复了。它是根据我以前的回答改编的。@LuiggiMendoza我已经更新了上面的代码。它正确吗?它会工作吗?@user2966197为什么每次迭代都要创建映射图
?如果这样做,每次迭代都会丢失数据。将映射
声明移到上方,同时
@LuiggiMendoza抱歉,这是一个打字错误。现在正确吗?