Obtenez 10 premières valeurs de hachage de la carte
Je suis à essayer de comprendre comment pourrais-je obtenir les 10 premières valeurs de la HashMap
. J'ai d'abord essayer d'utiliser la TreeMap
et avoir trier par valeur, puis prendre la première à 10 valeurs cependant, il semble que ce n'est pas une option, comme TreeMap
sortes par clé.
Je veux toujours être en mesure de savoir quelles sont les touches qui ont les valeurs les plus élevées, la K, V
de la carte sont String, Integer
.
- qu'entendez-vous le top 10 ? basé sur quoi?
- Pouvez-vous s'il vous plaît poster un peu de code pour montrer quel genre d'éléments de comparaison?
- TreeMap peut faire le tri pour vous. Mais pour que nous puissions savoir ce que vous êtes en essayant de trier par u ont à nous dire!
- Ahh désolé raté, le K,V sont d'une Chaîne de caractères,Entier. J'ai encore besoin de savoir quelles sont les touches qui ont les valeurs les plus élevées.J'ai essayé de TreeMap, mais il ne trie par clé tel que défini dans la spécification.
- stackoverflow.com/questions/109383/...
Vous devez vous connecter pour publier un commentaire.
Peut-être que vous devriez mettre en œuvre les
Comparable
Interface pour vos objets de valeur stockée dans la table de hachage.Ensuite, vous pouvez créer une liste de tableau de toutes les valeurs:
Ce qui concerne
Je crains que vous aurez à effectuer une itération sur l'ensemble de la carte. Tas , qui est communément utilisé la structure de données pour la recherche de premiers éléments K, comme expliqué dans ce livre.
Si vous essayez d'obtenir les 10 valeurs les plus élevées de la carte (en supposant que les valeurs sont numériques ou au moins la mise en œuvre Comparable), alors essayez ceci:
Foo
implémenteComparable<Foo>
et vous n'avez pas utiliser le raw type de liste.Supposons que vous avez une Carte, mais cet exemple peut travailler pour n'importe quel type de
Je base ma réponse dans un sk2212
D'abord vous avez besoin pour mettre en œuvre un descendant de comparaison:
Alors vous pouvez l'utiliser dans une méthode comme celle-ci pour l'attribut "table de hachage":