Как я могу распечатать все ключи, связанные с определенным значением?
Например, мой 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);