需要将一个自定义哈希图放入另一个哈希图

时间:2018-09-22 06:42:34

标签: java collections hashmap

我有以下地图:

HashMap<Integer, HashMap<Integer, Employee>> hmap = new HashMap<Integer,HashMap<Integer, Employee>>();

HashMap<Integer, Employee> emap = new HashMap<Integer, Employee>();

我正在使用键集将对象移出emap并比较员工薪水。 如果薪水低于特定金额,我需要将该地图放入键为0的hmap中,如果高于则将键为1。

for(Integer e: emap.keySet())
    {
        if(emap.get(e).getSalary()<45000.0)
        {
            hmap.put(0,//what should i put here );
        }
        else
        {
            hmap.put(1,//what should i put here );
        }
    }

谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用两个辅助地图:

Map<Integer, Employee> lowSalaryEmployees = new HashMap<>();  
Map<Integer, Employee> highSalaryEmployees = new HashMap<>();

然后将其填充到for循环中,并将其放入您的hmap中:

for (Integer k: emap.keySet()) {
    Employee e = emap.get(k);
    if (e.getSalary() < 45000.0) {
        lowSalaryEmployees.put(k, e);
    } else {
        highSalaryEmployees.put(k, e);
    }
}

hmap.put(0, lowSalaryEmployees);
hmap.put(1, highSalaryEmployees);

答案 1 :(得分:0)

由于您将? extends Comparable的参数化类型声明为hmap,因此只能将HashMap<Integer, HashMap<Integer, Employee>>类型作为值输入HashMap<Integer,Employee>中。