En Java, cuando creo un set
con Set.of()
o map
con Map.of()
lo que es la complejidad de tiempo de la contains
y get
las operaciones? Es O (1)?
El Set.of
y Map.of
API casos de implementaciones JDK-privadas volver. El rendimiento de estas implementaciones no está garantizada por la especificación. Sin embargo, las API hacen volver implementaciones específicas sobre las que se pueden hacer declaraciones de rendimiento. Por lo tanto, la pregunta es razonable y es distinto de un (hipotético) pregunta como "¿Cuál es el desempeño de Map.get
?" que es una pregunta mal porque hay muchos diferentes Map
implementaciones.
En cualquier caso, las implementaciones detrás Set.of
(de mayor tamaño que los dos) y Map.of
(para mayor tamaño de uno) utilizan un simple abierta dirigida hash esquema con el sondeo lineal para la resolución de conflictos. El Set.contains
y Map.get
operaciones son O (1) si están razonablemente bien distribuidos los elementos (teclas) hashes.