Sobes.tech
Junior — Middle

Qual è la differenza nel comportamento e nelle caratteristiche tra HashMap e LinkedHashMap in Java?

sobes.tech AI

Risposta dell'AI

HashMap e LinkedHashMap in Java si differiscono come segue:

  • HashMap memorizza coppie chiave-valore senza garanzia di ordine. L'ordine degli elementi può cambiare durante l'aggiunta o la rimozione.

  • LinkedHashMap estende HashMap e mantiene l'ordine di inserimento degli elementi. Ciò significa che durante l'iterazione, gli elementi verranno restituiti nell'ordine in cui sono stati aggiunti.

Caratteristiche:

  • LinkedHashMap è leggermente più lento a causa del supporto di una lista collegata per l'ordine.
  • LinkedHashMap può essere usato per implementare cache con rimozione in ordine di accesso.

Esempio:

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());

Output:

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

Se l'ordine degli elementi è importante, si dovrebbe usare LinkedHashMap.