Sobes.tech
Junior — Middle

Ποιο κριτήριο χρησιμοποιείται για την ταξινόμηση των στοιχείων αν καλείται η μέθοδος entrySet() στη συλλογή;

sobes.tech AI

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

Η μέθοδος entrySet() επιστρέφει ένα σύνολο από ζεύγη κλειδιού-τιμής (Map.Entry) από τη συλλογή Map. Από μόνη της, η entrySet() δεν εγγυάται την ταξινόμηση των στοιχείων.

Το κριτήριο ταξινόμησης εξαρτάται από την συγκεκριμένη υλοποίηση του Map:

  • Στο HashMap, η σειρά των στοιχείων δεν ορίζεται (δεν είναι ταξινομημένα).
  • Στο LinkedHashMap, τα στοιχεία είναι ταξινομημένα με βάση τη σειρά εισαγωγής.
  • Στο TreeMap, τα στοιχεία είναι ταξινομημένα με βάση το κλειδί σύμφωνα με την φυσική σειρά των κλειδιών ή τον παρεχόμενο συγκριτή.

Έτσι, αν καλέσετε entrySet() σε ένα TreeMap, τα στοιχεία θα είναι ταξινομημένα με βάση το κλειδί. Σε άλλες υλοποιήσεις, η σειρά μπορεί να είναι αυθαίρετη ή να διατηρείται με την εισαγωγή.

Παράδειγμα:

Map<String, Integer> map = new TreeMap<>();
map.put("b", 2);
map.put("a", 1);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + "=" + entry.getValue());
}
// Έξοδος:
// a=1
// b=2