Le temps de la Complexité de la HashMap méthodes

Depuis que je suis en train de travailler autour de l'heure de la complexité, j'ai été à la recherche par le biais de l'oracle Java bibliothèque de classe pour le moment, la complexité de certaines méthodes standard utilisées sur des Listes, des Cartes et des Classes. (plus précisément, ArrayList, HashSet et HashMap)

Maintenant, quand on regarde le HashMap javadoc page, ils ne font que parler de la get() et put() méthodes.

Les méthodes que j'ai encore besoin de savoir sont:

remove(Object o)
size()
values()

Je pense que remove() sera la même complexité que get(), O(1), en supposant que nous n'avons pas un géant de la table de hachage avec une égale hashCodes, etc etc...

Pour size() je voudrais aussi assumer O(1), depuis un HashSet, qui n'a pas de commande, a un size() méthode de la complexité O(1).

Celui que je n'ai aucune idée de qui est values() - je ne suis pas sûr de savoir si cette méthode sera juste en quelque sorte une "copie" de la table de hachage, donnant une fois de la complexité de O(1), ou si elle devra effectuer une itération sur la table de hachage, faisant de la complexité égale à la somme des éléments stockés dans la table de hachage.

Grâce.

  • Btw, comment pourrait - values() donner O(1) si elle même si elle vient en quelque sorte de "copier" la table de hachage ?
  • par ailleurs, votre lien est rompu
  • Pourriez-vous s'il vous plaît mentionner le exactes de la complexité (moyenne ou pire) que vous cherchez dans votre question ? La complexité de supprimer() sera différente en conséquence, comme l'a justement signalé par @JavaGuy
InformationsquelleAutor Koeneuze | 2011-01-02