La diferencia entre hashmap y hashset es la pregunta más frecuente en las entrevistas de Java. Si el marco de recolección y la entrevista multiproceso no están involucrados, se puede decir que está incompleto. El problema con el marco de colección no involucra hashset y hashmap, y se puede decir que está incompleto. Hashmap y Hashset son parte del marco de colección, que nos permiten usar colecciones de objetos. El marco de la colección tiene su propia interfaz e implementación, que se dividen principalmente en la interfaz establecida, la interfaz de lista y la interfaz de cola. Tienen sus propias características. El conjunto no permite que los objetos tengan valores duplicados, y la lista permite duplicados. Indexa los objetos en el conjunto. El principio de funcionamiento de la cola es el algoritmo FCFS (primero ven, primer servidor).
Primero veamos qué son hashmap y hashset, y luego comparemos las diferencias entre ellos.
Que es hashset
Hashset implementa la interfaz SET, que no permite valores duplicados en el conjunto. Cuando mencionamos hashset, lo primero es asegurarse de que el objeto anule los métodos iguales () y hashcode () antes de almacenar el objeto en el hashset, para que el objeto pueda compararse si los valores del objeto son iguales, para asegurarse de que no hay objetos iguales almacenados en el conjunto. Si no reescribemos estos dos métodos, se utilizará la implementación predeterminada de este método.
El método Public Boolean Add (Object O) se utiliza para agregar elementos en el conjunto. Cuando el valor del elemento se repite, devolverá inmediatamente False, y si se agrega con éxito, devolverá verdadero.
¿Qué es el hashmap?
Hashmap implementa la interfaz MAP, que mapea los pares de valor clave. Las teclas duplicadas no están permitidas en el mapa. Hay dos implementaciones básicas de la interfaz MAP, HashMap y Treemap. Treemap guarda el orden de los objetos, mientras que hashmap no puede. Hashmap permite que las teclas y los valores sean nulos. Hashmap no es sincronizado, pero el marco de colección proporciona métodos para garantizar que HASHMAP se sincronice, de modo que cuando múltiples hilos acceden a HASHMAP al mismo tiempo, puede garantizar que solo un hilo cambie el mapa.
El método de Public Object Put (Key, Value de objeto) se usa para agregar elementos al mapa.
Puede leer este artículo para ver cómo funciona HashMap, y este artículo para ver cómo HASHMAP y HASHTABLE son diferentes.
La diferencia entre hashset y hashmap
| *Hashmap* | *Hashset* |
| Hashmap implementa la interfaz del mapa | Hashset implementa la interfaz establecida |
| Hashmap para almacenar pares de valores clave | Hashset solo almacena objetos |
| Use el método Put () para poner elementos en el mapa | Use el método add () para poner elementos en el set |
| Hashmap usa objetos clave para calcular los valores de hashcode | Hashset usa objetos miembros para calcular los valores de hashcode. El hashcode puede ser el mismo para dos objetos, por lo que el método igual () se usa para juzgar la igualdad de objetos. Si los dos objetos son diferentes, entonces devuelva falso. |
| Hashmap es más rápido porque usa la única clave para obtener el objeto | Hashset es más lento que el hashmap |
Si conoce alguna otra diferencia, deje un mensaje.
Enlace original: Javarevisited Traducción: importnew.com - Tang Xiaojuan Enlace de traducción: http://www.importnew.com/6931.html