Clé particulière d'une hashmap

Résolu
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

1 réponse

  1. Modérateur
    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)
    1. bonjour,
      Merci pour la réponse détaillée , maintenant je vois mieux les choses =)