Sobes.tech
Junior — Middle

¿En qué se diferencian el comportamiento y las características de HashMap y LinkedHashMap en Java?

sobes.tech AI

Respuesta de la IA

HashMap y LinkedHashMap en Java se diferencian de la siguiente manera:

  • HashMap almacena pares clave-valor sin garantía de orden. El orden de los elementos puede cambiar al agregar o eliminar.

  • LinkedHashMap extiende HashMap y mantiene el orden de inserción de los elementos. Esto significa que al iterar, los elementos se devolverán en el orden en que fueron añadidos.

Características:

  • LinkedHashMap es un poco más lento debido al soporte de una lista enlazada para el orden.
  • LinkedHashMap puede usarse para implementar cachés con eliminación en orden de acceso.

Ejemplo:

Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("one", 1);
hashMap.put("two", 2);
hashMap.put("three", 3);

Map<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("one", 1);
linkedHashMap.put("two", 2);
linkedHashMap.put("three", 3);

System.out.println("HashMap: " + hashMap.keySet());
System.out.println("LinkedHashMap: " + linkedHashMap.keySet());

Salida:

HashMap: [two, one, three]
LinkedHashMap: [one, two, three]

Por lo tanto, si el orden de los elementos es importante, se debe usar LinkedHashMap.