Как я могу распечатать все ключи, связанные с определенным значением?

Например, мой treeMap установлен как <String key, String value>

if(employeeList.containsKey(searchKey)){
    temp = "Employee: " + searchKey + ", Department: " + 
           departmentList.get(searchKey) + ", Salary: $" + employeeList.get(searchKey);
}

Этот цикл получает всю информацию, связанную с определенным ключом, вводимым пользователем. В моем случае, если я введу ключ (имя сотрудника), я получу его имя, отдел и зарплату.

Есть ли способ, которым я могу сделать противоположное? Итак, могу ли я набрать отдел (значение) и получить все имена сотрудников (ключ), связанных с этим отделом?

1 ответ

Решение

С текущей структурой данных вы должны перебрать карту:

ArrayList<String> relatedKeys = new ArrayList<String>();
for(String k : departmentList.keySet()){
  if(departmentList.get(k).equals(searchKey))
    relatedKeys.add(k);

в конце у вас есть список всех связанных ключей и вы можете использовать

for(String k : relatedKeys)
  System.out.println(k);
Другие вопросы по тегам