Como estoy trabajando en la complejidad del tiempo, he estado buscando en la biblioteca de la clase Oracle de Oracle la complejidad temporal de algunos métodos estándar utilizados en las listas, los mapas y las clases. (Más específicamente, ArrayList, HashSet y HashMap)Complejidad del tiempo de los métodos de HashMap
Ahora, cuando se mira en el HashMap javadoc page, en realidad sólo hablan de los métodos get()
y put()
.
los métodos que todavía necesita saber son:
remove(Object o)
size()
values()
creo que remove()
será la misma complejidad que get()
, O(1)
, suponiendo que no tienen un HashMap gigante con iguales hashcodes, etc etc. ..
Para size()
también me asumir O(1)
, ya que un HashSet, que también tiene ningún orden, tiene un método size()
con la complejidad O(1)
.
El que no tengo ni idea de es values()
- No estoy seguro de si este método se acaba de alguna manera "ejemplar" el HashMap, dando un tiempo de complejidad O(1)
, o si tendrá que repetir el HashMap, haciendo la complejidad es igual a la cantidad de elementos almacenados en HashMap.
Gracias.
Por cierto, cómo 'values ()' da 'O (1)' si es que incluso de alguna manera " copia "HashMap? – Pacerier
por cierto, su enlace está roto – Hengameh
¿Podría mencionar la complejidad exacta (promedio o peor) que está buscando en su pregunta? La complejidad de remove() será diferente en consecuencia, como señaló correctamente @JavaGuy – Dinesh