Je dois avoir une carte entre deux types d'objets, disons, à des fins de démonstration, String et Long.Java HashMap inverse way
Je sais que HashMap a un O (1) les performances de recherche, ce qui est génial. Je me sers quelque chose comme ceci:
HashMap<String, Long> a = new HashMap<String, Long>();
Cela fonctionne très bien quand je veux rechercher par la clé. Cependant, maintenant je dois aussi trouver la clé en cherchant par valeur.
Si je commence à itérer sur les touches, alors je vais perdre la performance.
La première option que j'ai pensé est de créer une autre HashMap l'inverse.
HashMap<Long, String> reverseA = new HashMap<Long, String>();
Et chaque fois que j'écris dans un, écrivez dans l'autre.
est-il pas une classe spécifique pour être en mesure de rechercher par des clés et des valeurs, avec cette grande performance?
Dois-je créer ma propre classe avec les deux HashMaps?
Une autre solution?
Peut-être goyave de [BiMap] (https://github.com/google/guava/wiki/NewCollectionTypesExplained # bimap) contient ce que vous cherchez. – Henrik
Mais bien sûr, la clé est unique et la valeur n'est peut-être pas –
@ScaryWombat: Eh bien, si la carte 'reverseA' est une option, alors les valeurs seront mieux uniques ou il y aura un peu d'inconsistance. – Henrik