2017-10-03 2 views
-1

J'ai une HashMap qui contient une liste d'utilisateurs et la clé est l'identifiant de l'équipe à laquelle cet utilisateur participe. L'ensemble des touches ressemble à ceci:Tri HashMap par clé et valeur acceptant les instances nulles

[59b83da60b616d17065a993a, null, 59b84145cb49632609e03811, 59a82440cc32316561d803ce, 59c109aa20fe7b48f3832eef, 59a74647cc32316561d7be21, 59c5013b20fe7b48f3871c83] 

Prenant en considération le fait que chaque équipe a un ID et un nom, je voudrais savoir comment puis-je régler ce problème HashMap par les noms correspondants si ces cartes d'identité et garder le champ null dans la première position de la HashMap.

J'ai une liste d'équipes où je pourrais facilement vérifier quel est le nom d'une équipe avec l'ID "1" en utilisant la méthode getName(String id). Mais ma difficulté est de faire face à la HashMap.

+2

Les HashMaps sont conçues pour des recherches rapides. Ils ne sont pas conçus pour être triés. Vous devrez sélectionner une structure de données différente. –

Répondre

3

Si vous voulez trier votre carte, vous ne devriez pas utiliser HashMap, utilisez plutôt SortedMap comme TreeMap à la place. Vous pouvez généralement initialiser ces cartes avec un comparateur pour spécifier l'ordre de tri. Quelque chose comme:

Map<String, Team> teams = new TreeMap<>(Comparator.nullsFirst(Comparator.naturalOrder()));