Pour chaque boucle sur Java HashMap
De base programme de chat que j'ai écrit a plusieurs mots-clés qui génèrent des actions spéciales, des images, des messages, etc. - Je stocker tous les mots-clés et des fonctions spéciales dans une table de hachage. Les mots clés sont les touches et les fonctions sont des valeurs. Je veux comparer la saisie de l'utilisateur pour les touches avec un certain type de boucle. J'ai essayé tout ce que je pense et rien ne fonctionne. C'est ce que je peux comprendre:
myHashMap = <File Input>
for(String currentKey : <List of HashMap Keys>){
if(user.getInput().equalsIgnoreCase(currentKey)){
//Do related Value action
}
}
...
Je vous serais reconnaissant de toute aide. Pardonnez-moi si j'ai oublié une question similaire, ou si la réponse est évidente.
- Comment êtes-vous stocker une fonction dans une table de hachage? Entendez-vous un auditeur?
- Vous pouvez obtenir une liste de clés avec
myHashMap.keySet()
si c'est ce que vous demandez. - Double Possible de Façon la plus efficace de faire une itération sur chaque entrée dans une "Carte"?
Vous devez vous connecter pour publier un commentaire.
Bien, vous pouvez écrire:
mais ce n'est pas vraiment la meilleure façon d'utiliser un hachage de la carte.
Une meilleure approche consiste à remplir
myHashMap
avec de minuscules touches, puis d'écrire:pour récupérer la fonction (ou
null
si l'entrée utilisateur n'apparaît pas dans la carte).Si vous avez besoin d'un accès à la fois la clé et la valeur, alors c'est le moyen le plus efficace
Entry
, fairee
final
.Seulement dans Java 8 & au-dessus de
Un meilleur modèle ici peut-être:
qui tire parti du fait que HashMap retourne
null
si la clé n'est pas contenue dans la Carte.