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 -
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
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:
- Clé particulière d'une hashmap
- Clé usb non détectée - Guide
- Clé windows 8 - Guide
- Formater clé usb - Guide
- Clé usb - Accueil - Stockage
- Clé bootable windows 10 - Guide
1 réponse
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)
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)
Merci pour la réponse détaillée , maintenant je vois mieux les choses =)