如何使用Java中的单个键的值列表形成Hashmap

时间:2014-05-10 17:02:00

标签: java hashmap

我从数据库中获取Employee DOBDepartment 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>>()我可以构建一个多哈希图,但是如何为每个密钥设置年龄值?

1 个答案:

答案 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