Sobes.tech
Junior — Middle

Ποια είναι η διαφορά στη συμπεριφορά και τα χαρακτηριστικά μεταξύ HashMap και LinkedHashMap στη Java;

sobes.tech AI

Απάντηση από AI

HashMap και LinkedHashMap στην Java διαφέρουν ως εξής:

  • HashMap αποθηκεύει ζεύγη κλειδιού-τιμής χωρίς εγγύηση σειράς. Η σειρά των στοιχείων μπορεί να αλλάξει κατά την προσθήκη ή διαγραφή.

  • LinkedHashMap επεκτείνει το HashMap και διατηρεί τη σειρά εισαγωγής των στοιχείων. Αυτό σημαίνει ότι κατά την επανάληψη, τα στοιχεία θα επιστρέφονται με τη σειρά που προστέθηκαν.

Χαρακτηριστικά:

  • Το LinkedHashMap είναι λίγο πιο αργό λόγω της υποστήριξης μιας συνδεδεμένης λίστας για τη σειρά.
  • Το LinkedHashMap μπορεί να χρησιμοποιηθεί για την υλοποίηση cache με διαγραφή με βάση τη σειρά πρόσβασης.

Παράδειγμα:

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

Έξοδος:

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

Επομένως, αν η σειρά των στοιχείων είναι σημαντική, πρέπει να χρησιμοποιήσετε το LinkedHashMap.