Лучшая Java Datastructure для хранения ключевой пары ценностей
Возможный дубликат:
Java Hashmap: как получить ключ от стоимости? Двунаправленная карта на Java?
Я хочу использовать key value data structure
для Android-приложения. Я могу использовать Map<K,V>
, но в Map
я не могу получить ключ для определенного значения.
Есть ли хорошая структура данных Java, с помощью которой я могу получить ключ по значению и наоборот.
Ответы
Ответ 1
Вы можете использовать Map с классами entrySet и Map.Entry для итерации и получения обоих ключей и значений, даже если вы не знаете ни одного из ключей на карте.
Map <Integer,String> myMap = new HashMap<Integer,String>();
Iterator<Entry<Integer, String>> iterator = myMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer,String> pairs = (Map.Entry<Integer,String>)iterator.next();
String value = pairs.getValue();
Integer key = pairs.getKey();
System.out.println(key +"--->"+value);
}
Ответ 2
Использовать Google Guava BiMap
Как использовать Guava Libraris в Android здесь
Ответ 3
Лучшей структурой данных будет Java HashMaps, чтобы проверить эту ссылку, вы можете использовать метод get(Object key)