Carte avec des valeurs en double
J'ai passé les questions portent sur les mêmes questions, mais je ne reçois pas une idée claire de la façon de mettre en œuvre la carte avec des entrées en double. J'ai été demandé à cette question dans mon interview. Merci de me donner quelques lignes directrices.
Par exemple, une société a deux employés du même nom et la même zone de développement savoir.
map.put("Tom Hank","Java");
map.put("Tom Hank","Java");
Comme nous le savons tous, nous ne pouvons pas stocker des valeurs en double dans HashMap
. Donc, puis-je mettre en œuvre et de récupérer les valeurs en fonction de la clé? Ou de toute autre meilleure solution?
C'est à ces questions que j'ai traversé, mais pas en mesure de comprendre comment faire cela.
Comment inclure des doubles de clés dans la table de hachage? |
Comment puis-je avoir une HashMap en Java avec des doubles de clés
- Ce que vous n'avez pas à comprendre à partir de ces questions? Les réponses y figurent même exemple.
- Les réponses ont été liés à Google des bibliothèques, mais mon interviewer pourrait être intéressé par la logique.
- Pourquoi ne pas utiliser une Map<Clé, une Liste<Valeur>>?
- A votre interviewer vraiment dit d'utiliser une carte? Je veux dire, j'aurais certainement créer un
Employee
de la classe, unSet<String>
comme un attribut, le rangement de la zone de développement, et de la maintenir à unSet<Employee>
. - "Je ne suis pas d'obtenir une idée claire de la façon de mettre en œuvre la carte avec des entrées en double" -
Map
s n'ont pas de doubles de clés, fin de l'histoire. Votre interviewer était une blague en vous, ou que vous n'avez pas donné l'ensemble de la question. - Vous pouvez avoir les mêmes valeurs tout simplement pas les mêmes touches
- Merci s'accoupler, mais pouvez-vous élaborer davantage, de sorte que je peux répondre à la même question (si demandé) la prochaine fois.
- Il a été dit que j'ai besoin de mettre deux mêmes touches sur une carte.
- Grande idée. Mais Comment pouvez-vous dire lequel Tom Hank est-elle la bonne?
- L'ajout d'une pièce d'identité, comme par exemple les
unique ID
ou certainsEmployeeId
- C'est le truc. De mon point de vue à l'aide de non-Id uniques dans des scénarios similaires peuvent conduire à des problèmes. Bases de données/Sql fonctionnent sur les clés uniques, donc les choses sont bien définis et sans ambiguïté. Je pense que c'est probablement la peine de mentionner répondre à des questions.
Vous devez vous connecter pour publier un commentaire.
Carte ne prend en charge des doubles des clés. vous pouvez utiliser la collecte de la valeur à l'encontre même clé.
Parce que si la carte contenait auparavant une cartographie pour la clé, l'ancienne valeur est remplacée par la valeur spécifiée.
vous pouvez utiliser quelque chose comme cela.
Type multimaps dans Google, et vous trouverez ce que vous cherchez.
Une autre façon de faire serait de faire une simulation de multimap la manière suivante:
Mais de trouver un multimaps mise en œuvre permettra d'économiser vous tous les ennuis.
J'espère que cela va vous aider à:
Comment il apporte à votre problème en image, c'est d'avoir une multimap qui peuvent contenir des doublons. Enfin, multimap est mis dans la carte et vous trouverez le MultiMap avec des doublons ajoutés dans la nouvelle Carte. Aussi, trouver le code commenté dans la méthode main, qui se caractérise par le fait que la Carte ne peut pas tenir les doublons.
Cependant, je trouve la solution fournie par Armas est également très approprié.
Espérons que cela aide 🙂