tri treemap basé sur clé où clé est variable
Je veux l'arborescence de la carte basée sur le clé où clé est une variable,afin de tri doit être basée sur la valeur de la variable, Comment pouvons-nous y parvenir? Je veux utiliser dans la construction de méthode de tri rathar de la mettre en œuvre à l'aide de code, toute réponse avec un exemple est d'une grande aide.
ce serait que de clé? des exemples?
merci pour la réponse, ici, la clé est variable,
Voulez-vous dire que vous souhaitez trier par des valeurs, plutôt que de trier par touches?
tenir compte de cette affaire. Je veux mettre en œuvre clé en tant que variable. comme a=1,b=3,c=2, elles doivent être triées en fonction de ses valeurs. exemple:lorsque vous carte (une,"un") (b,"trois")(c,"deux"). après le tri impression de tresorerie doit imprimer un,deux,trois et non pas d'un,trois,deux
découvrez ma mise à jour de réponse.
merci pour la réponse, ici, la clé est variable,
k=3, l=2 ,m=1
donc, dans ce cas, je veux de la clé de tri m<l<k
. et k maped x l est mappé à y m est mappé à zVoulez-vous dire que vous souhaitez trier par des valeurs, plutôt que de trier par touches?
tenir compte de cette affaire. Je veux mettre en œuvre clé en tant que variable. comme a=1,b=3,c=2, elles doivent être triées en fonction de ses valeurs. exemple:lorsque vous carte (une,"un") (b,"trois")(c,"deux"). après le tri impression de tresorerie doit imprimer un,deux,trois et non pas d'un,trois,deux
découvrez ma mise à jour de réponse.
OriginalL'auteur sachin | 2011-08-03
Vous devez vous connecter pour publier un commentaire.
TreeMap
(qui implémenteSortedMap
) stocke automatiquement les touches dans le bon ordre:Clés-Type (dans ce cas
Integer
) vous pouvez utiliser n'importe quelle classe qui implémenteComparable
(ou vous pouvez fournir unComparateur
lors de la création de laTreeMap
)Edit: Bon, voici une suggestion comment ré-carte votre carte.
sry, mais la Clé de la Classe devrait être immuable (peuvent pas être modifiés après la création).Cela a 2 raisons: 1) Si vous modifiez la valeur d'une clé, il ne peut être garanti que la clé est unique après le changement. 2) les valeurs de La Carte sont triés dans l'ordre correct lorsque vous ajoutez de la valeur. Ainsi, lorsque vous voulez changer l'ordre des valeurs dans la Carte, vous devez le recréer
en fait, ce que sachin veut, c'est de trier par valeurs. il a exprimé lui-même à tort.
Je vais vous expliquer les cas, il est clair, d'envisager ce " int a=1; int b=3; int c=2; mettre ces fait comme clé dans une carte(a,x), (b,y), (c,z) lorsque vous triez la carte et de l'imprimer sortie doit être de x en jachère par z en jachère par an.
sry, je ne comprends pas votre problème. Rien ne vous empêche d'ajouter des valeurs à l'aide
map.put(a,x)
. Il est seulement important de comprendre que le changement dea
APRÈS l'insertion dans la carte ne SERA PAS de modifier l'ordre de tri dans la carte. Et il n'y a rien que vous pouvez faire à ce sujet - à l'exception de reconfiguration de vos nouvelles paires clé/valeur.OriginalL'auteur pmnt
TreeMap
met en œuvre laSortedMap
de l'interface et est triée par sa clé sans que vous ayez à faire quoi que ce soit:k=3, l=2 ,m=1
donc, dans ce cas, je veux de la clé de trim<l<k
. et k maped x l est mappé à y m est mappé à zOriginalL'auteur NPE
Un treemap est un Rouge-noir de l'arbre, qui est un équilibre un arbre de recherche binaire. En d'autres termes, l'arbre est déjà trié (ou plutôt, organisé par l'arbre de recherche binaires règles) avec une hauteur équilibrée de sorte que l'arbre opérations ont un O(lg n) la complexité. Cependant, je pense que ce que vous voulez est pour imprimer toutes les touches dans l'ordre de tri. C'est aussi simple que la mise en œuvre d'un afinde de la traversée sur le treemap, ou vous pouvez utiliser le keySet() la méthode pour obtenir un Ensemble et effectuer une itération sur les valeurs.
par exemple de afinde traversée
MODIFIER:
D'accord, je suis sûr que ce est ce que vous voulez. Vous souhaitez trier par valeurs:
De sortie:
Si cela fonctionne même pour le tri des valeurs de chaîne:
De sortie:
Aussi, sachin prendre note que d'avoir des "variables clés" et les valeurs de la variable sont des choses complètement différentes.
k=3, l=2 ,m=1
donc, dans ce cas, je veux de la clé de trim<l<k
. et k maped x l est mappé à y m est mappé à zdécouvrez ma mise à jour de réponse.
fondamentalement, la clé devrait être variable, de tri doit être w.r.valeur t en fait pas sur valuve mappé à la clé il y a différence entre ces deux.
si la clé est une variable, alors ce qui va arriver à sa valeur associée lorsque les principaux changements?
Je ne pense pas que je peux appliquer ce que j'ai thoough que la clé est immuable, elle doit être unique, donc je dois chercher pour les autres slution. Mon exiger que tion a été je veux trier la priorité de l'un et de schémas de chaque régime est associé à une mutuelle indicateur exclusive alors, quand j'ai en quelque sorte la priorité respectifs excluent mutuellement drapeau devrait se trouver dans le même index de tableau . pouvez-vous m'indiquer une solution ??
OriginalL'auteur Dhruv Gairola