Je suis un problème étrange avec HASHMAP à Android. Je mettais des valeurs dans le hashmap qui est de la forme , disissons-moi que je limite les valeurs suivantes dans l'ordre suivant: p> VIDEOS: video1
VIDEOS: video2
VIDEOS: video3
VIDEOS: video4
VIDEOS: video5
VIDEOS: video6
VIDEOS: video7
VIDEOS: video8
VIDEOS: video9
8 Réponses :
Vous devez utiliser triedmap code> au lieu de hashmap code>. Il garantira l'ordre. P>
Dépend de votre ordre à laquelle il est après. Cela ne garantira pas l'ordre d'insertion.
LinkedHashMap serait une meilleure option
C'est vrai. L'implémentation ... Jetez un coup d'œil à Utilisez certains hashmap code> de carte code> ne garantit pas de commande lors de l'itération. Si vous voulez commander en fonction de l'insertion ... h3>
linkedhashmap code> : < / p> si vous souhaitez commander en fonction des touches ... h3>
triedmap code> tel qu'un Treemap code> . P> P>
Vous pouvez également utiliser un LinkedHashMap < / code> afin d'obtenir la collection d'entrées dans le même ordre, elles ont été insérées. P>
Recherchez une classe qui implémente une interface de tri. Ou à des fins d'impression uniquement, vous pouvez commander de défini renvoyé de votre carte avec collections.sort P>
dans la commande HASHMAP n'est pas là. Essayez d'utiliser LinkedHashMap à la place. linkedhashmap code> garde la trace des touches sur la base de la commande d'insertion, de sorte que lorsque vous appelez à getKeeSet () code>, vous obtiendrez les clés dans l'ordre que vous les mettiez dans l'ordre . p>
Si vous utilisez un hashmap simple, cette classe utilise une technique de hachage pour stocker la valeur, au moment de l'extraction des données de la liste, son utilisation de la même technique de hachage. Et la fonction de hachage ne sont pas commandées. C'est pourquoi le résultat ne vient pas un ordre. En cas de hashmap, vous devez utiliser LinkedHashMap pour la faire commander. p>
LinkedHashMap<T, T> keep the insert order