Diferencia entre HashMap y TreeMap en Java

Autor: Laura McKinney
Fecha De Creación: 2 Abril 2021
Fecha De Actualización: 14 Mayo 2024
Anonim
Tutorial java #32 - TreeMap y TreeMap Vs HashMap
Video: Tutorial java #32 - TreeMap y TreeMap Vs HashMap

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.

  1. Cuadro comparativo
  2. Definición
  3. Diferencias clave
  4. Conclusión

Cuadro comparativo

Bases para la comparaciónHashMapTreeMap
Básico HashMap no mantiene el orden de inserción.TreeMap mantiene el orden de inserción.
Estructura de datosHashMap 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 implementaHashMap extiende la clase AbstractMap e implementa la interfaz Map.TreeMap extiende la clase AbstractMap e implementa la interfaz SortedMap y NavigableMap.
ActuaciónHashMap 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 sm)

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.

  1. Ambas clases se usan para crear objetos de mapa, pero la diferencia básica entre HashMap y Treemap es que HashMap no mantiene el orden de inserción, mientras que Treemap sí.
  2. La estructura de datos utilizada por Hashmap para almacenar elementos del mapa es la tabla hash y la estructura de datos utilizada por TreeMap para almacenar los elementos del mapa es el árbol rojo-negro.
  3. Tanto las clases Hashmap como Treemap amplían la clase AbstractMap, pero la clase HashMap implementa la interfaz Map y la TreeMap implementa la interfaz NavigableMap y SortedMap.
  4. Los valores pueden ser nulos cualquier cantidad de tiempo en ambos, pero la clave solo puede ser nula una vez en HashMap y una clave nunca puede estar en Treemap.
  5. El rendimiento de HashMap es más rápido, no pierde tiempo ordenando los elementos del mapa como lo hace TreeMap. Por lo tanto, TreeMap funciona más lento que HashMap.

Conclusión:

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.