Sobes.tech
Junior — Middle

¿En qué se diferencian las colecciones HashMap y Hashtable en términos de implementación y características?

sobes.tech AI

Respuesta de la IA

HashMap y Hashtable son implementaciones de la interfaz Map en Java, pero tienen algunas diferencias:

  • Sincronización: Hashtable está sincronizado (seguro para hilos), lo que lo hace más lento en entornos multihilo. HashMap no está sincronizado, por lo que es más rápido, pero no seguro para acceso multihilo sin sincronización externa.

  • Permite null: HashMap permite un null-llave y múltiples null-valores. Hashtable no permite null-llaves ni null-valores.

  • Herencia: Hashtable es una clase más antigua, hereda de Dictionary, mientras que HashMap hereda de AbstractMap.

  • Uso: En aplicaciones modernas, es preferible usar HashMap, y para sincronización, usar ConcurrentHashMap o sincronizar externamente HashMap.

Ejemplo de uso de HashMap:

Map<String, Integer> map = new HashMap<>();
map.put("key", 1);
Integer value = map.get("key");