У меня есть следующие данные в моем HashMapКак я могу вернуть ключи определенного значения в Hashmap?
<key1,value1>
<key2,value2>
<key3,value2>
<key4,value4>
<key5,value2>
Я хотел бы, чтобы найти все ключи, которые содержат значение «значение2». Ответ будет KeySet, содержащий следующие ключи: {key2, key3, key4}
Возможно ли это сделать в HashMap? thanks
Я предполагаю, что вы устраняете итерирование по HashMap и проверяете значение, соответствующее каждой клавише. –
Вы ищете двунаправленную карту, также называемую «multimap». Существует реализация в библиотеке [Guava] (http://code.google.com/p/guava-libraries/). Это также не сложно сделать сами ... обратная карта использует значение в качестве ключа (при условии, что класс значения имеет 'hashCode()' и 'equals()') и 'List' в качестве значения. 'List ' требуется, потому что у вас будет более одного сопоставления клавиш с заданным значением. –