Diferencia entre HashMap y TreeMap en Java
Contenido
HashMap y TreeMap son las clases Map y ambas implementan la interfaz Map. Map es un objeto que almacena pares clave-valor, donde cada clave es única y puede haber valores duplicados. La clase HashMap usa la tabla hash como estructura de datos. TreeMap usa el árbol rojo-negro como estructura de datos. La principal diferencia entre HashMap y Treemap es que el HashMap no conserva el orden de inserción mientras que, el Mapa de árbol hace.
Así que comencemos nuestra discusión sobre las diferencias entre HashMap y TreeMap con la ayuda de la tabla de comparación que se muestra a continuación.
- Cuadro comparativo
- Definición
- Diferencias clave
- Conclusión
Cuadro comparativo
Bases para la comparación | HashMap | TreeMap |
---|---|---|
Básico | HashMap no mantiene el orden de inserción. | TreeMap mantiene el orden de inserción. |
Estructura de datos | HashMap usa Hash Table como una estructura de datos subyacente. | TreeMap utiliza el árbol rojo-negro como estructura de datos subyacente. |
Claves nulas y valores | HashMap permite clave nula una vez que el valor nulo del anuncio cualquier cantidad de tiempo. | TreeMap no permite la clave nula, pero permite valores nulos cualquier cantidad de tiempo. |
Extiende e implementa | HashMap extiende la clase AbstractMap e implementa la interfaz Map. | TreeMap extiende la clase AbstractMap e implementa la interfaz SortedMap y NavigableMap. |
Actuación | HashMap funciona más rápido. | TreeMap en comparación con HashMap funciona más lento. |
Definición de HashMap
HashMap es una clase de mapa. Utiliza el tabla de picadillo, como una estructura de datos para almacenar el par de valores clave de los mapas. La inserción del par clave-valor se realiza utilizando el código hash del llaves. Por lo tanto, cada clave en el mapa debe ser única, ya que se utilizará para recuperar los valores.
El orden de inserción en HashMap es no conservado, lo que significa que el objeto hashmap no devuelve los elementos en el orden en que se insertaron. Por otro lado, el orden en que se devolverán los elementos no es fijo.
los llave se le permite ser NULO a la vez, pero el valores puede ser NULO en cualquier cantidad de tiempo. El HashMap puede contener el heterogéneo objetos para claves y valores.
Hay cuatro constructores de HashMap:
HashMap () HashMap (Mapa m) HashMap (int capacidad), HashMap (int capacidad, float fillRatio)
los primero El constructor crea el objeto vacío de HashMap. los segundo El constructor inicializa el HashMap utilizando elementos de Map m. los tercero El constructor inicializa el HashMap con la capacidad proporcionada en el argumento. los cuarto El constructor inicializa la capacidad y la relación de relleno del objeto HashMap.
El valor por defecto capacidad del HashMap es 16y el valor predeterminado relación de llenado del HashMap es 0.75.
Definición de TreeMap
Al igual que HashMap, TreeMap También es una clase de mapa. TreeMap se extiende ResumenMapa clase e implementos NavigabelMap y SortedMap. Los objetos TreeMap almacenan los elementos del mapa en la estructura de árbol. La estructura de datos utilizada para almacenar el Mapa es la Árbol rojo-negro.
TreeMap almacena el par de valores clave en el orden ordenado, lo que ayuda a recuperar rápidamente los elementos. El objeto TreeMap devuelve los elementos en el ordenado (ascendente) orden.
Hay cuatro constructores de TreeMap:
TreeMap () TreeMap (Comparador <? Super K> comp) TreeMap (Mapa <? Extiende K,? Extiende V> m) TreeMap (SortedMap los primero Los constructores crean un objeto vacío de TreeMap que se ordenaría en orden natural por sus claves. los segundo el constructor creará un mapa de árbol vacío que se ordenará por Comparador cmp. los tercero el constructor anterior creará un mapa de árbol que se inicializará utilizando entradas de Mapa metro. los cuarto el constructor creará un mapa de árbol que se inicializará utilizando las entradas de SortedMap sm. Treemap no tiene ningún método nuevo propio, utiliza el método de interfaz NavigableMap y SortedMap y la clase AbstractMap. TreeMap debe usarse solo cuando requiera un par de valores clave en forma ordenada. Como la clasificación incluye el costo de rendimiento. HashMap no sincronizado funciona más rápido.
Conclusión: