Нужно поместить один пользовательский хэш-карту в другой хэш-карту - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть карты ниже:

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

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

Я использую набор ключей, чтобы получить объект из emap и сравнить зарплату сотрудника.Если зарплата меньше определенной суммы, мне нужно поместить эту карту в hmap с ключом, равным 0, и если она больше, чем с ключом, равным 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 голосов
/ 22 сентября 2018

Вы можете использовать две вспомогательные карты:

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);
0 голосов
/ 22 сентября 2018

Поскольку вы объявили параметризованный тип hmap как HashMap<Integer, HashMap<Integer, Employee>>, вы можете только HashMap<Integer,Employee> ввести как значение в hmap.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...