Besoin d'une carte / table Java avec plusieurs clés à une valeur. La valeur est généralement modifiée
Ce dont j'ai besoin est une collection qui permet à plusieurs clés d'accès à un objet unique.
J'ai besoin d'appliquer des modifications fréquentes à cet objet.
Il doit aussi être efficace pour 500k+ entrées.
source d'informationauteur Duncan
Vous devez vous connecter pour publier un commentaire.
La mise en œuvre des
java.util.Map<K,V>
va le faire - ce qu'il y a aucune restriction sur combien de fois une valeur particulière peut être ajoutée en vertu de l'clés:Si vous voulez une carte où une seule clé est associé avec plusieurs valeurs, ce qui est appelé un multi-carte et vous pouvez en obtenir un à partir de la google java API collections ou de Apache commons-collections
Euh...
L'instant, la carte contient la même valeur à deux reprises, accessibles via des clés différentes. Si ce n'est pas ce que vous cherchez, vous devrait retravailler votre question. 🙂
J'ai interprété sa demande de manière différente. Que faire si l'on veut deux types complètement différents jeux de clés pour accéder aux mêmes valeurs sous-jacentes. Par exemple:
Évidemment le fait d'avoir deux cartes, l'une pour l'entier des clés et un pour la Chaîne de clés, n'est-ce pas aller au travail, car une mise à jour en une seule carte ne reflète pas dans l'autre carte. En supposant que vous avez modifié le
Map<String,Object>
la mise à jour de "Singe" à la carte à fifthObject. Le résultat de cette modification est de changer leEntry<String,Object>
à l'intérieur de cette carte, mais bien sûr, cela n'a aucun effet sur l'autre carte. Tout ce que vous avez prévu est:ce que vous souhaitez obtenir dans la réalité serait celle-ci:
ce que je fais dans cette situation est d'avoir les deux côtés des cartes, mais au lieu de les faire dire
Map<String, Integer>
je voudrais faireMap<String, Integer[]>
où le tableau est un seul membre de la matrice. La première fois que j'ai associé une clé avec une valeur, si aucun tableau n'existe pas encore, et le retour de la clé null, j'ai créer le tableau, et d'associer n'importe quelle autre touche, je souhaite avec elle (et qui touche la carte). Par la suite, j'ai qu'à modifier le contenu du tableau, mais jamais la référence à la matrice elle-même, et cela fonctionne à merveille.ce peut faire ce que vous voulez: