Clé particulière d'une hashmap

Résolu/Fermé
SabrineH Messages postés 23 Date d'inscription mardi 14 juin 2016 Statut Membre Dernière intervention 8 février 2017 - 8 juil. 2016 à 11:36
SabrineH Messages postés 23 Date d'inscription mardi 14 juin 2016 Statut Membre Dernière intervention 8 février 2017 - 11 juil. 2016 à 12:25
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 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
8 juil. 2016 à 19:24
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 mardi 14 juin 2016 Statut Membre Dernière intervention 8 février 2017
11 juil. 2016 à 12:25
bonjour,
Merci pour la réponse détaillée , maintenant je vois mieux les choses =)
0