我有以下地图:
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 );
}
}
谢谢。
答案 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>
中。