Clé particulière d'une hashmap

Résolu
SabrineH Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
SabrineH Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je cherche à vérifier si une clé existe dans une hashmap. Je sais que hashMap.containsKey(key) fait 'affaire, mais il me semble qu'elle est relativement lente, à fortiori qu'elle parcours toute la Hashmap jusqu'à trouver la clé. Dans mon cas, j'ai juste besoin de vérifier si la dernière ou avant dernière clé est bien ce que je cherche (key) , y a-t-il un moyen plus rapide que containsKey pour accéder à ce champ ?
Merci d'avance
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

hashMap.containsKey(key) fait 'affaire, mais il me semble qu'elle est relativement lente, à fortiori qu'elle parcours toute la Hashmap jusqu'à trouver la clé.
Pas du tout, grâce au mécanisme de hachage (d'où le nom HashMap), l'accès à cette clé se fait en O(1), c'est le mieux que l'on sache faire pour un ensemble quelconque de clés.

vérifier si la dernière ou avant dernière clé est bien ce que je cherche
La notion d'ordre (première, dernière...) n'a pas de sens dans une Map (sauf les SortedMap mais ce n'est pas le cas de HashMap) parce que la position des clés peut être assez chaotique (c'est le but) afin d'éviter les collisions.

y a-t-il un moyen plus rapide que containsKey pour accéder à ce champ ?
Non, cette méthode est dédiée à ce cas d'utilisation, s'il y avait plus rapide ils l'auraient directement mis dans cette méthode.
Par contre si après tu utilises à nouveau la clé pour faire un get alors on peut se passer du contains et faire le get directement (il faudra juste contrôler que le résultat n'est pas null)
0
SabrineH Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour,
Merci pour la réponse détaillée , maintenant je vois mieux les choses =)
0