9
votes

Ajout de la même clé deux fois sur la carte

Je faisais des recherches sur carte s et j'ai découvert que si j'ajoute la même clé deux fois délibérément, la taille de la carte reste la même. Quelle est la raison technique derrière cela? xxx

code pour récupérer ... xxx

Le résultat que je reçois: xxx


1 commentaires

C'est tout le point de cartes.


3 Réponses :


25
votes

parce que Le contrat de la carte est que ces clés doivent être uniques. Donc, si vous associez une nouvelle valeur à une clé existante, elle remplacera la valeur de l'entrée existante, et non créer une nouvelle entrée:

Un objet qui mesure les clés des valeurs. Une carte ne peut pas contenir des touches en double; Chaque touche peut mapper au plus une valeur.

Vous pouvez également vérifier carte # Met () Javadoc (emphase des mien):

associe la valeur spécifiée avec la clé spécifiée de cette carte (opération facultative). Si la carte contenait précédemment un mappage de la clé pour la clé, l'ancienne valeur est remplacée par la valeur spécifiée. (une carte m est dit contenant un mappage pour une clé K si et uniquement si M.Containskey ( k) retournerait vrai.)


8 commentaires

@ Assylias..matanks est cette règle s'applique à toutes les formes de carte s'il s'agit de la carte de l'arborescence, etc. !!


Si cette règle ne s'applique pas, ce n'est pas une carte de carte valide . Donc oui.


@ user1579492 Chaque classe qui implémente la carte est censée être conforme au contrat défini dans l'interface. Toutes les implémentations de la carte dans le JDK sont conformes au contrat de la carte.


Depuis que c'est dans le contrat de la carte, il doit s'appliquer à tout mettre en œuvre une carte, sinon elle brise le contrat.


@assylia Pourriez-vous également me dire comment générer Javadoc pour cela à Eciplse ou par ligne de commande qui sera une excellente aide ..!


@ user1579492 Que voulez-vous dire "Générer Javadoc pour cela"?


Je veux générer Javadoc afin que je puisse étudier la structure et les classes de la carte en détail .! !!


@ user1579492 Le Javadoc est en ligne. C'est le premier lien de mon post. Le Javadoc répertorie également toutes les classes de mise en œuvre au même sommet ..



0
votes

Si la nouvelle clé est identique à celle des touches existantes, la valeur de la carte est écrasée.


0 commentaires

2
votes

Une carte Java standard ne peut avoir qu'une seule valeur par clé. Notez que cette valeur pourrait être une collection, et vous pouvez ainsi stocker efficacement plusieurs valeurs par clé.

Si vous voulez plusieurs clés identiques sur une carte, diverses solutions existent. Voir la Guava Multimap < / a>, par exemple.


0 commentaires