J'avais écrit à l'origine d'un ArrayList
et stockées des valeurs uniques (noms d'utilisateur, c'est à dire Strings
). Plus tard, j'ai besoin d'utiliser l' ArrayList
pour rechercher si un utilisateur existe. C'est O(n)
pour la recherche.
Mon tech responsable voulu me le changer pour un HashMap
et de stocker les noms d'utilisateur comme clés dans le tableau et les valeurs vides Strings
.
Donc, en Java
hashmap.put("johndoe","");
Je peux voir si cet utilisateur n'existe plus tard en cours d'exécution -
hashmap.containsKey("johndoe");
C'est - O(1)
droit?
Mon chef a dit que c'était un moyen plus efficace de le faire et il fait sens pour moi, mais il me semblait un peu hors de mettre null/vide comme des valeurs dans la table de hachage et de stocker des éléments clés.
Ma question est, est-ce une bonne approche? L'efficacité beats ArrayList#contains
ou un tableau de recherche en général. Elle fonctionne.
Mon souci est que je n'ai pas vu quelqu'un d'autre le faire après une recherche. J'ai peut-être manquant un évident problème quelque part, mais je ne peux pas le voir.